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 threading模块操作多线程介绍
Apr 08 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
python递归删除指定目录及其所有内容的方法
Jan 13 Python
谈谈python中GUI的选择
Mar 01 Python
Python字典遍历操作实例小结
Mar 05 Python
matplotlib实现区域颜色填充
Mar 18 Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 Python
Python带参数的装饰器运行原理解析
Jun 09 Python
python中数字是否为可变类型
Jul 08 Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 Python
Python 文本滚动播放器的实现代码
Apr 25 Python
Python打包为exe详细教程
May 18 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
example2.php
2006/10/09 PHP
php全角字符转换为半角函数
2014/02/07 PHP
php中cookie的使用方法
2014/03/29 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
PHP多进程简单实例小结
2019/11/09 PHP
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
js对象的复制继承实例
2015/01/10 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
深入理解vue中的$set
2017/06/01 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
python client使用http post 到server端的代码
2013/02/10 Python
Python中元组,列表,字典的区别
2017/05/21 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
python网络应用开发知识点浅析
2019/05/28 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
比较基础的php面试题及答案-填空题
2014/04/26 面试题
静态变量和实例变量的区别
2015/07/07 面试题
新学期国旗下演讲稿
2014/05/08 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
python编写函数注意事项总结
2021/03/29 Python
JavaScript组合继承详解
2021/11/07 Javascript
vue+iview实现手机号分段输入框
2022/03/25 Vue.js