版权声明:本文为博主原创文章,欢迎转载,并请注明出处。联系方式: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训练的更多相关文章

  1. Ubuntu16.04安装tensorflow+安装opencv+安装openslide+安装搜狗输入法

    Ubuntu16.04在cuda以及cudnn安装好之后,安装tensorflow,tensorflow以及opencv可以到网上下载对应的安装包并且直接在安装包所在的路径下直接通过pip与conda ...

  2. ubuntu16.04 使用tensorflow object detection训练自己的模型

    一.构建自己的数据集 1.格式必须为jpg.jpeg或png. 2.在models/research/object_detection文件夹下创建images文件夹,在images文件夹下创建trai ...

  3. ubuntu16.04安装tensorflow官方教程与机器学习资料【学习笔记】

    tensorflow官网有官方的安装教程:https://www.tensorflow.org/install/install_linux google的机器学习官方快速入门教程:https://de ...

  4. Ubuntu16.04安装TensorFlow

    1.查看tensoflow与CUDA对应版本: windows端:https://tensorflow.google.cn/install/source_windows Linux端:https:// ...

  5. ubuntu16.04 安装cuda9.0+cudnn7.0.5+tensorflow+nvidia-docker配置GPU服务

    [摘要] docker很好用,但是在GPU服务器上使用docker却比较复杂,需要一些技巧,下面将介绍一下在ubuntu16.04环境下的GPU-docker环境搭建过程. 第一步: 删除之前的nvi ...

  6. Ubuntu16.04安装配置和使用ctags

    Ubuntu16.04安装配置和使用ctags by ChrisZZ ctags可以用于在vim中的函数定义跳转.在ubuntu16.04下默认提供的ctags是很老很旧的ctags,快要发霉的版本( ...

  7. ubuntu16.04安装jdk,tomcat

    ubuntu16.04安装jdk,tomcat 最近装了一下tomcat,网上的教程很多,我也试了很多次,但是有一些教程关于tomcat配置是错误的,让我走上了歧途.差点重装系统,还好王总及时出手帮助 ...

  8. Ubuntu16.04 安装openjdk-7-jdk

    Ubuntu16.04 安装openjdk-7-jdk sudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdk ...

  9. Ubuntu16.04安装GTK3主题:OSX-Arc

    Ubuntu16.04安装GTK3主题:OSX-Arc GTK3主题:OSX-Arc描述: 前几个月,Gnome3.20升3.22的时候,出现了大量主题崩溃的现象,其中包括Arc.Flatabulou ...

随机推荐

  1. 第36章 扩展授权 - Identity Server 4 中文文档(v1.0.0)

    OAuth 2.0为令牌端点定义了标准授权类型,例如password,authorization_code和refresh_token.扩展授权是一种添加对非标准令牌颁发方案(如令牌转换,委派或自定义 ...

  2. [转]Nodejs进程间通信

    本文转自:http://www.cnblogs.com/rubyxie/articles/8949417.html 一.场景 Node运行在单线程下,但这并不意味着无法利用多核/多机下多进程的优势 事 ...

  3. 安装VS时,双击setup.exe后界面一闪而过的问题

    问题:安装VS时,双击setup.exe界面一闪而过的问题 解决: 百度后说需要到"控制面板/添加和管理程序"关闭系统自带的netframework3.x及以上版本. 1.查看所有 ...

  4. Linux下Jenkins服务器搭建

    系统环境 操作系统:CentOS6.9 java jdk:java 8 Jenkins版本:jenkins-2.78-1.1.noarch.rpm 关闭防火墙 注意:如果是基于msbuild构建.ne ...

  5. 手机端input[type=date]的placeholder不起作用

    <div class="input clearfix"> <label class="fl">起始日期</label> &l ...

  6. 42.Odoo产品分析 (四) – 工具板块(10) – 问卷(2)

    查看Odoo产品分析系列--目录 接上一篇Odoo产品分析 (四) – 工具板块(10) – 问卷(1) 4 页面 即问卷,点开一项查看:  可以看出,网页就是问卷本身的子目录,其中指明了该目录包括哪 ...

  7. TortoiseSVN 安装时出现 please install the universal crt

    解决步骤: 1.打开 https://www.microsoft.com/zh-cn/ 2.搜索 universal crt (hotfix kb2999226) 3.点击链接 4.选择适合自己的版本 ...

  8. Windows Server 2012 NIC Teaming 网卡绑定介绍及注意事项

    Windows Server 2012 NIC Teaming 网卡绑定介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Window ...

  9. SQL SERVER 索引碎片

    一次发现同样的SQL在线上库和复制库执行时间差好多,重新创建相关表索引,性能提升明显,怀疑索引有碎片

  10. Vim 宏

    宏的概念 什么是宏呢?英文名:macro,代表一串命令的集合. 示例操作文本 SELECT * FROM `edu_ocr_task` WHERE ((`userId`=284871) AND (`u ...