Ubuntu16.04安装TensorFlow及Mnist训练
版权声明:本文为博主原创文章,欢迎转载,并请注明出处。联系方式:460356155@qq.com
TensorFlow是Google开发的开源的深度学习框架,也是当前使用最广泛的深度学习框架。
一、安装
ubuntu16.04安装TensorFlow很简单:
pip install tensorflow==1.1.0 --user
安装是否成功验证:
>>> import tensorflow as tf
>>> tf.__version__
'1.1.0'
>>> session = tf.Session()
>>> a = tf.constant(100)
>>> b = tf.constant(200)
>>> print(session.run(a+b))
300
二、Mnist训练
定义三层全连接的网络结构:768 × 300 × 10,完整代码如下:
# -*- coding:utf-8 -*- u"""TensorFlow训练Mnist""" __author__ = 'zhengbiqing 460356155@qq.com' import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data # 超参数定义
learning_rate = 0.5
epochs = 5000
batch_size = 128 def main():
# 模型定义
# 输入图片为28 x 28 = 784 像素
x = tf.placeholder(tf.float32, [None, 784]) # 输入层---->隐藏层权重及bias初始化
W1 = tf.Variable(tf.random_normal([784, 300], stddev=0.03), name='W1')
b1 = tf.Variable(tf.random_normal([300]), name='b1') # 隐藏层---->输出层权重及bias初始化
W2 = tf.Variable(tf.random_normal([300, 10], stddev=0.03), name='W2')
b2 = tf.Variable(tf.random_normal([10]), name='b2') # 隐藏层输出计算
hidden_out = tf.add(tf.matmul(x, W1), b1)
hidden_out = tf.nn.relu(hidden_out) # 模型输出
model_out = tf.nn.softmax(tf.add(tf.matmul(hidden_out, W2), b2))
# model_out = tf.nn.softmax(model_out) # 交叉熵定义
y = tf.placeholder(tf.int64, [None])
cross_entropy = tf.losses.sparse_softmax_cross_entropy(labels=y, logits=model_out) # 优化器,确定优化目标
optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate).minimize(cross_entropy) # mnist 数据集
mnist = input_data.read_data_sets("MNIST_data/") # 创建session
with tf.Session() as sess:
# session初始化
tf.global_variables_initializer().run(session=sess) # 模型训练
for epoch in range(epochs):
batch_xs, batch_ys = mnist.train.next_batch(batch_size)
sess.run(optimizer, feed_dict={x: batch_xs, y: batch_ys}) # 测试准确率
if epoch % 50 == 0:
correct = tf.equal(tf.argmax(model_out, 1), y)
accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))
acc = sess.run(accuracy, feed_dict={x: mnist.test.images, y: mnist.test.labels})
print('Epoch:%d, Acc:%f' % (epoch, acc)) if __name__ == '__main__':
main()
运行结果:
zbq@zbq:~/tf$ python tf-minist.py
Extracting MNIST_data/train-images-idx3-ubyte.gz
Extracting MNIST_data/train-labels-idx1-ubyte.gz
Extracting MNIST_data/t10k-images-idx3-ubyte.gz
Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
Epoch:0, Acc:0.097400
Epoch:50, Acc:0.606300
Epoch:100, Acc:0.726400
Epoch:150, Acc:0.745900
Epoch:200, Acc:0.751400
......
Epoch:4800, Acc:0.957200
Epoch:4850, Acc:0.957800
Epoch:4900, Acc:0.958000
Epoch:4950, Acc:0.958700
运行5000个迭代,准确率达到了95%左右,对一个简单的三层全连接网络,该准确率还是不错的。
Ubuntu16.04安装TensorFlow及Mnist训练的更多相关文章
- Ubuntu16.04安装tensorflow+安装opencv+安装openslide+安装搜狗输入法
Ubuntu16.04在cuda以及cudnn安装好之后,安装tensorflow,tensorflow以及opencv可以到网上下载对应的安装包并且直接在安装包所在的路径下直接通过pip与conda ...
- ubuntu16.04 使用tensorflow object detection训练自己的模型
一.构建自己的数据集 1.格式必须为jpg.jpeg或png. 2.在models/research/object_detection文件夹下创建images文件夹,在images文件夹下创建trai ...
- ubuntu16.04安装tensorflow官方教程与机器学习资料【学习笔记】
tensorflow官网有官方的安装教程:https://www.tensorflow.org/install/install_linux google的机器学习官方快速入门教程:https://de ...
- Ubuntu16.04安装TensorFlow
1.查看tensoflow与CUDA对应版本: windows端:https://tensorflow.google.cn/install/source_windows Linux端:https:// ...
- ubuntu16.04 安装cuda9.0+cudnn7.0.5+tensorflow+nvidia-docker配置GPU服务
[摘要] docker很好用,但是在GPU服务器上使用docker却比较复杂,需要一些技巧,下面将介绍一下在ubuntu16.04环境下的GPU-docker环境搭建过程. 第一步: 删除之前的nvi ...
- Ubuntu16.04安装配置和使用ctags
Ubuntu16.04安装配置和使用ctags by ChrisZZ ctags可以用于在vim中的函数定义跳转.在ubuntu16.04下默认提供的ctags是很老很旧的ctags,快要发霉的版本( ...
- ubuntu16.04安装jdk,tomcat
ubuntu16.04安装jdk,tomcat 最近装了一下tomcat,网上的教程很多,我也试了很多次,但是有一些教程关于tomcat配置是错误的,让我走上了歧途.差点重装系统,还好王总及时出手帮助 ...
- Ubuntu16.04 安装openjdk-7-jdk
Ubuntu16.04 安装openjdk-7-jdk sudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdk ...
- Ubuntu16.04安装GTK3主题:OSX-Arc
Ubuntu16.04安装GTK3主题:OSX-Arc GTK3主题:OSX-Arc描述: 前几个月,Gnome3.20升3.22的时候,出现了大量主题崩溃的现象,其中包括Arc.Flatabulou ...
随机推荐
- 第41章 CORS - Identity Server 4 中文文档(v1.0.0)
第41章 CORS IdentityServer中的许多端点将通过基于JavaScript的客户端的Ajax调用进行访问.鉴于IdentityServer最有可能托管在与这些客户端不同的源上,这意味着 ...
- .Net中Log4Net的使用
2018-08-23 .Net中Log4Net的使用 一.log4net 分类型记录日志存放多个日志文件 1.在webconfig里添加配置 1.1 在<configSections> 中 ...
- [Python] Python 学习 - 可视化数据操作(一)
Python 学习 - 可视化数据操作(一) GitHub:https://github.com/liqingwen2015/my_data_view 目录 折线图 散点图 随机漫步 骰子点数概率 文 ...
- Mysql启动时执行文件init-file的使用
可以在配置文件里指定mysql启动以后初始执行的SQL文件, 其语法是: 在[mysqld]下指定: init-file="D:/mysql/test.sql", 后面为具体的s ...
- Java开发笔记(七十三)常见的程序异常
一个程序开发出来之后,无论是用户还是程序员,都希望它稳定地运行,然而程序毕竟是人写的,人无完人哪能不犯点错误呢?就算事先考虑得天衣无缝,揣着一笔巨款跑去岛国买了栋抗震性能良好的海边别墅,谁料人算不如天 ...
- mysql删除重复记录,只保留最大ID的记录(非重复也保留)
目前网上搜索的删除重复记录,大部分都是where子查询,本人感觉看上去不美观,故亲自手写了一个,如下: delete from mst_sku using mst_sku,( select dist ...
- iOS----------输入框UITextField禁止输入空格
方法一:添加代理 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range rep ...
- ES6常用
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准. 因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015(简称ES2015).虽然浏览器在不 ...
- 预置第三方apk到MTK项目相关问题总结
目前5.0之后项目预置方式通用步骤为: 建立apk文件夹; 置目标apk到该文件夹下; 解压缩apk查看是否包含lib/文件夹(apk项目是否包含lib库文件); 在该文件夹下编写Androi ...
- Cs231n课堂内容记录-Lecture 5 卷积神经网络介绍
Lecture 5 CNN 课堂笔记参见:https://zhuanlan.zhihu.com/p/22038289?refer=intelligentunit 不错的总结笔记:https://blo ...