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判断给定的字符串是否是有效日期的方法
May 13 Python
Django框架中的对象列表视图使用示例
Jul 21 Python
jupyter安装小结
Mar 13 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
Jul 02 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
python3 破解 geetest(极验)的滑块验证码功能
Feb 24 Python
kaggle+mnist实现手写字体识别
Jul 26 Python
Python 使用指定的网卡发送HTTP请求的实例
Aug 21 Python
Python 合并多个TXT文件并统计词频的实现
Aug 23 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
Django中Q查询及Q()对象 F查询及F()对象用法
Jul 09 Python
Python如何定义有默认参数的函数
Aug 10 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
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
2010/05/10 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
[01:00]DOTA2 store: Collection of Artisan's Wonders
2015/08/12 DOTA
python二维列表一维列表的互相转换实例
2018/07/02 Python
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
python实现烟花小程序
2019/01/30 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
python pandas 时间日期的处理实现
2019/07/30 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
Solaris操作系统的线程机制
2015/07/28 面试题
高分子材料与工程专业个人求职信
2013/12/15 职场文书
给酒店员工的表扬信
2014/01/11 职场文书
秋季校运动会广播稿
2014/02/23 职场文书
五一劳动节活动记录
2014/03/23 职场文书
教学改革实施方案
2014/03/31 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
园林技术专业求职信
2014/07/28 职场文书
2019数学教师下学期工作总结
2019/06/27 职场文书
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android