tensorflow学习笔记(二)
tensorflow中自带的mnist手写数字识别,运用最简单的单层神经网络,softmax激活函数,极客学院上说准确率有91%,我今天调整到了92%! import tensorflow as tf
import numpy as np
import math
import tensorflow.examples.tutorials.mnist as mn
class Mnist:
def __init__(self):
sess = tf.InteractiveSession()
self.mnist = mn.input_data.read_data_sets("E:\\Python35\\Lib\\site-packages\\tensorflow\\examples\\tutorials\\mnist\\MNIST_data",one_hot=True)
self.x = tf.placeholder("float", shape=[None, 784])
self.y_ = tf.placeholder("float", shape=[None, 10])
self.W = tf.Variable(tf.zeros([784,10]))
self.b = tf.Variable(tf.zeros([10]))
self.y = tf.nn.softmax(tf.matmul(self.x,self.W) + self.b)
self.cross_entropy = -tf.reduce_sum(self.y_*tf.log(self.y))
sess.run(tf.global_variables_initializer()) self.bestModel = None
self.bestPredict = 0.0
self.bestIter = 0
self.bestRate = 0.0
self.bestSample = 0 self.iters = [1000,1200,1400]
self.rates = [0.01,0.02]
self.samples = [100,150,200] def train(self):
for iter in self.iters:
for rate in self.rates:
train_step = tf.train.GradientDescentOptimizer(rate).minimize(self.cross_entropy)
for sample in self.samples:
self.optimizer(iter, rate, sample, train_step) def optimizer(self,iter,rate,sample,train_step):
for i in range(iter):
batch = self.mnist.train.next_batch(sample)
model = train_step.run(feed_dict={self.x: batch[0], self.y_: batch[1]})
correct_prediction = tf.equal(tf.argmax(self.y, 1), tf.argmax(self.y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
predict = accuracy.eval(feed_dict={self.x: self.mnist.test.images, self.y_: self.mnist.test.labels})
if predict > self.bestPredict:
self.bestPredict = predict
self.bestModel = model
self.bestIter = iter
self.bestRate = rate
self.bestSample = sample def output(self):
print("bestRate:",self.bestRate,"bestIter:",self.bestIter,"bestSample:",self.bestSample,"bestPredict:",self.bestPredict) if __name__ == '__main__':
mnist = Mnist()
mnist.train()
mnist.output() E:\Python35\python.exe E:/PycharmProjects/test/com/python/machinelearning/tensorflowTest.py
Extracting E:\Python35\Lib\site-packages\tensorflow\examples\tutorials\mnist\MNIST_data\train-images-idx3-ubyte.gz
Extracting E:\Python35\Lib\site-packages\tensorflow\examples\tutorials\mnist\MNIST_data\train-labels-idx1-ubyte.gz
Extracting E:\Python35\Lib\site-packages\tensorflow\examples\tutorials\mnist\MNIST_data\t10k-images-idx3-ubyte.gz
Extracting E:\Python35\Lib\site-packages\tensorflow\examples\tutorials\mnist\MNIST_data\t10k-labels-idx1-ubyte.gz bestRate: 0.01 bestIter: 1000 bestSample: 100 bestPredict: 0.9193
tensorflow学习笔记(二)的更多相关文章
- tensorflow学习笔记二:入门基础 好教程 可用
http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础 TensorFlow用张量这种数据结构来表示所有的数据.用一 ...
- tensorflow学习笔记二:入门基础
TensorFlow用张量这种数据结构来表示所有的数据.用一阶张量来表示向量,如:v = [1.2, 2.3, 3.5] ,如二阶张量表示矩阵,如:m = [[1, 2, 3], [4, 5, 6], ...
- Tensorflow学习笔记二
现在来开始安装Tensorflow吧 Tensorflow有两种模式, 一种GPU支持, 另外一种仅CPU支持 虚拟机仅有CPU支持, 那就第一种模式吧 有4种途径去安装 virtualenv &qu ...
- tensorflow学习笔记二----------变量
tensorflow里面的变量表示,需要使用特定的语法进行.如果想构造一个行(列)向量,需要调用Variable函数进行.对两个变量进行操作,也要调用相应的函数. import tensorflow ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...
- tensorflow学习笔记——自编码器及多层感知器
1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这 ...
- TensorFlow学习笔记——LeNet-5(训练自己的数据集)
在之前的TensorFlow学习笔记——图像识别与卷积神经网络(链接:请点击我)中了解了一下经典的卷积神经网络模型LeNet模型.那其实之前学习了别人的代码实现了LeNet网络对MNIST数据集的训练 ...
- tensorflow学习笔记——VGGNet
2014年,牛津大学计算机视觉组(Visual Geometry Group)和 Google DeepMind 公司的研究员一起研发了新的深度卷积神经网络:VGGNet ,并取得了ILSVRC201 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)
续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...
- TensorFlow学习笔记0-安装TensorFlow环境
TensorFlow学习笔记0-安装TensorFlow环境 作者: YunYuan 转载请注明来源,谢谢! 写在前面 系统: Windows Enterprise 10 x64 CPU:Intel( ...
随机推荐
- .net Dapper 实践系列(1) ---项目搭建(Layui+Ajax+Dapper+MySQL)
目录 写在前面 一.前期准备 1.在MySQL创建数据库 2.创建项目 3.安装程序包 4.添加插件 5.添加DbOption文件夹 6.添加实体类 写在前面 学习并实践使用Dapper 这个小型的O ...
- python中format函数用于字符串的格式化
python中format函数用于字符串的格式化 通过关键字 print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字 grade = {'name' : ...
- string 转stream和stream转string
string test = “Testing 1-2-3″; // convert string to stream MemoryStream stream = new MemoryStream(); ...
- windows下控制台程序实现窗口显示
windows下实现窗口显示,如果限定是C/C++语言,并且是原生Windows支持,需要使用GDI或GDI+.一般是在Visual Studio里新建Win32应用程序,而不是Win32 conso ...
- equals与hashCode
当我们需要将自己的类存入HashMap或HashSet时一般都要重写其equals与hashCode方法,但在重写时要符合规范否则会出问题. 1.equals方法 首先equals方法需要满足如下几点 ...
- Linux文本编译工具VIM详解
Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 >.vi: 全称Visual editor,即文本编辑 ...
- Product Oriented Recurrence(Codeforces Round #566 (Div. 2)E+矩阵快速幂+欧拉降幂)
传送门 题目 \[ \begin{aligned} &f_n=c^{2*n-6}f_{n-1}f_{n-2}f_{n-3}&\\ \end{aligned} \] 思路 我们通过迭代发 ...
- uiautomator2+python自动化测试2-查看app页面元素利器weditor
前言 android sdk里面自带的uiautomatorviewer.bat可以查看手机app上的元素,但是不太好用,网上找了个大牛写的weditor,试用了下还是蛮不错的 python环境:3. ...
- Android 网络服务介绍
1. 介绍 Android网络服务主要包括如下四个部分 - ConnectivityService: 提供数据连接管理服务,包括移动数据.WIFI.以太网等 - NetworkPolicyManage ...
- BZOJ-1085:骑士精神 (迭代加深 + A*搜索)
题意:给定一个5*5的棋盘,上面有白马给妈给12匹,以及一个空格.问是否能在15步内有给定棋盘转移到目标棋盘. 如果可以,输出最小步数. 否则输出-1: 思路:由于步数比较小,我们就直接不记录状态vi ...