TensorFlow实现Logistic回归


Posted in Python onSeptember 07, 2018

本文实例为大家分享了TensorFlow实现Logistic回归的具体代码,供大家参考,具体内容如下

1.导入模块

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

from matplotlib import pyplot as plt
%matplotlib inline

#导入tensorflow
import tensorflow as tf

#导入MNIST(手写数字数据集)
from tensorflow.examples.tutorials.mnist import input_data

2.获取训练数据和测试数据

import ssl 
ssl._create_default_https_context = ssl._create_unverified_context

mnist = input_data.read_data_sets('./TensorFlow',one_hot=True)

test = mnist.test
test_images = test.images

train = mnist.train
images = train.images

3.模拟线性方程

#创建占矩阵位符X,Y
X = tf.placeholder(tf.float32,shape=[None,784])
Y = tf.placeholder(tf.float32,shape=[None,10])

#随机生成斜率W和截距b
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))

#根据模拟线性方程得出预测值
y_pre = tf.matmul(X,W)+b

#将预测值结果概率化
y_pre_r = tf.nn.softmax(y_pre)

4.构造损失函数

# -y*tf.log(y_pre_r) --->-Pi*log(Pi)  信息熵公式

cost = tf.reduce_mean(-tf.reduce_sum(Y*tf.log(y_pre_r),axis=1))

5.实现梯度下降,获取最小损失函数

#learning_rate:学习率,是进行训练时在最陡的梯度方向上所采取的「步」长;
learning_rate = 0.01
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

6.TensorFlow初始化,并进行训练

#定义相关参数

#训练循环次数
training_epochs = 25
#batch 一批,每次训练给算法10个数据
batch_size = 10
#每隔5次,打印输出运算的结果
display_step = 5


#预定义初始化
init = tf.global_variables_initializer()

#开始训练
with tf.Session() as sess:
  #初始化
  sess.run(init)
  #循环训练次数
  for epoch in range(training_epochs):
    avg_cost = 0.
    #总训练批次total_batch =训练总样本量/每批次样本数量
    total_batch = int(train.num_examples/batch_size)
    for i in range(total_batch):
      #每次取出100个数据作为训练数据
      batch_xs,batch_ys = mnist.train.next_batch(batch_size)
      _, c = sess.run([optimizer,cost],feed_dict={X:batch_xs,Y:batch_ys})
      avg_cost +=c/total_batch
    if(epoch+1)%display_step == 0:
      print(batch_xs.shape,batch_ys.shape)
      print('epoch:','%04d'%(epoch+1),'cost=','{:.9f}'.format(avg_cost))
  print('Optimization Finished!')

  #7.评估效果
  # Test model
  correct_prediction = tf.equal(tf.argmax(y_pre_r,1),tf.argmax(Y,1))
  # Calculate accuracy for 3000 examples
  # tf.cast类型转换
  accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
  print("Accuracy:",accuracy.eval({X: mnist.test.images[:3000], Y: mnist.test.labels[:3000]}))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python解析发往本机的数据包示例 (解析数据包)
Jan 16 Python
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
Python实现对象转换为xml的方法示例
Jun 08 Python
Python实现多线程抓取网页功能实例详解
Jun 08 Python
Sublime开发python程序的示例代码
Jan 24 Python
python 处理dataframe中的时间字段方法
Apr 10 Python
Python中一些不为人知的基础技巧总结
May 19 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 Python
python判断数字是否是超级素数幂
Sep 27 Python
python如何变换环境
Jul 21 Python
pytorch下的unsqueeze和squeeze的用法说明
Feb 06 Python
Python数据类型最全知识总结
May 31 Python
tensorflow实现简单逻辑回归
Sep 07 #Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 #Python
TensorFlow实现iris数据集线性回归
Sep 07 #Python
TensorFlow实现模型评估
Sep 07 #Python
使用tensorflow实现线性svm
Sep 07 #Python
Python多进程池 multiprocessing Pool用法示例
Sep 07 #Python
详解python while 函数及while和for的区别
Sep 07 #Python
You might like
第一节--面向对象编程
2006/11/16 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
php依赖注入知识点详解
2019/09/23 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
PHP中->和=>的含义及使用示例解析
2020/08/06 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
JavaScript Eval 函数使用
2010/03/23 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
js实现微博发布小功能
2017/01/12 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
详解Python中的正则表达式的用法
2015/04/09 Python
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
pymysql的简单封装代码实例
2020/01/08 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
给老师的检讨书
2014/02/11 职场文书
优良学风班申请材料
2014/02/13 职场文书
保密工作责任书
2014/04/16 职场文书
白莲教口号
2014/06/18 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
离婚财产分配协议书
2014/10/21 职场文书
《藏戏》教学反思
2016/02/23 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL