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 ...
随机推荐
- shell32.dll 控制网络
//禁用 SetNetworkAdapter(False) //启用 SetNetworkAdapter(True) //添加引用system32/shell32.dll private static ...
- MEF 基础简介 三
MEF导出类的方法和属性 首先来说导出属性,因为这个比较简单,和导出类差不多,先来看看代码,主要看我加注释的地方,MusicBook.cs中的代码如下: using System; using Sys ...
- [Go] Go的WaitGroup计数信号量
WaitGroup是一个计数信号量,可以用来记录并维护运行的goroutine,如果WaitGroup的值大于0,Wait方法就会阻塞 调用Done方法来减少WaitGroup的值,并最终释放main ...
- js 向上和向下取整
Math.ceil(x),Math.floor(x) ◎Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数:◎Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近 ...
- nth-child(n)和nth-of-type(n)的区别
1.官方解释: p:nth-child(2) 选择属于其父元素的第二个子元素的每个 <p> 元素. p:nth-of-type(2) 选择属于其父元素第二个 <p> 元 ...
- 快速使用CSS Grid布局,实现响应式设计
常用Grid布局属性介绍 下面从一个简单Grid布局例子说起. CSS Grid 布局由两个核心组成部分是 wrapper(父元素)和 items(子元素). wrapper 是实际的 grid(网格 ...
- asp.net/wingtip/创建数据访问层
一. 什么是数据访问层 在wingtip项目中,数据访问层是对以下三者的总称:1. product类等数据相关的实体类(class)2. 数据库(database),对实体类成员的存储3. 上述二者的 ...
- Android studio,第一个生成,调用成功的jni(说多了都是泪)
0x01 序言: 泪从何处说起呢?其实很早以前就用过android studio写过c++,但是,但是一直没有成功生成过so文件,所以心中一直有一个纠结...为什么不成功呢... 直到今天,由于工作的 ...
- 【原】无脑操作:eclipse创建maven工程时,如何修改默认JDK版本?
问题描述:eclipse建立maven项目时,JDK版本默认是1.5,想创建时默认版本设置为1.8,如何修改? 解决方案: 找到本机maven仓库存放位置,比如:${user.home}/.m2/路径 ...
- python--多继承
多继承 子类可以拥有多个父类,继承所有父类的属性和方法 class 子类名(父类名1,父类名2): 多个父类直接不要有重名的方法和属性,子类对象调用,没法确认.