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中列表、字典、元组、集合数据结构整理
Nov 20 Python
Python标准库os.path包、glob包使用实例
Nov 25 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
python处理xml文件的方法小结
May 02 Python
python 查找文件名包含指定字符串的方法
Jun 05 Python
python制作简单五子棋游戏
Jun 18 Python
深入解析神经网络从原理到实现
Jul 26 Python
Django多数据库的实现过程详解
Aug 01 Python
python二元表达式用法
Dec 04 Python
什么是Python中的匿名函数
Jun 02 Python
pytorch中的numel函数用法说明
May 13 Python
Python PIL按比例裁剪图片
May 11 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
解决GD中文乱码问题
2007/02/14 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
PHP处理postfix邮件内容的方法
2015/06/16 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
为jQuery增加join方法的实现代码
2010/11/28 Javascript
Js sort排序使用方法
2011/10/17 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
自动化测试读写64位操作系统的注册表
2016/08/15 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
Vue.js用法详解
2017/11/13 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
使用Python脚本操作MongoDB的教程
2015/04/16 Python
python实现类的静态变量用法实例
2015/05/08 Python
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
Python操作json的方法实例分析
2018/12/06 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
同学聚会老师邀请函
2014/01/28 职场文书
家长对孩子评语
2014/01/30 职场文书
学生会离职感言
2014/02/11 职场文书
环保建议书作文
2014/03/12 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
教学质量月活动总结
2015/05/11 职场文书
python 中yaml文件用法大全
2021/07/04 Python
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电