【tensorflow】tensorflow学习记录——安装、第一个程序篇
机器学习,人工智能往后肯定是一个趋势,现阶段有必要研究一两个人工智能的工具,以免自己技术落伍,其中tensorflow就是一个很不错的项目,有谷歌开发后开源,下面开始学习安装和使用
安装篇:
很不幸,源代码和pip的源都是在谷歌托管,连tensorflow官网都是,所以国内访问不了,很悲剧。但是通过docker可以轻松安装,又不用翻墙。
docker pull tensorflow/tensorflow
下载tensorflow镜像。
docker run -dit -p 8888:8888 --name tensorflow tensorflow/tensorflow
启动tensorflow容器。
如果没有防火墙的话,现在用浏览器访问docker所在服务器地址的8888端口就可以看到jupyter界面了。(jupyter可以认为是一个python的网页版IDE,方便使用)
http://xxx.xxx.xxx.xxx:8888
为了安全,jupyter默认设置了token验证,可以通过
docker logs tensorflow
查看token。每还一个浏览器或者电脑,都需要输入新的token, 如果有人感觉使用不方便,可以给jupyter设置一个密码,设置方式如下:
1,进入tensorflow容器
docker exec -it tensorflow /bin/bash
2,运行
jupyter notebook password
3, 根据提示两次输入密码
4, 重启tensorflow容器
docker restart tensorflow
二,第一个tensorflow程序
tensorflow的入门程序是识别手写数字,就跟其他程序的helloword一样。
详细工作原理,见这个帖子
http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_beginners.html
代码实现:
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
#引入mnist的数据
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
#设置一个数组元素为32位浮点数、未知数*784的数组占位符X
x = tf.placeholder(tf.float32, [None, 784])
#设置一个默认值为0的784*10的数组变量
w = tf.Variable(tf.zeros([784,10]))
#设置一个默认值为0的1*10的数组变量
b = tf.Variable(tf.zeros([10]))
#根据公式生成表达式
y = tf.nn.softmax(tf.matmul(x,w) + b)
#设置一个浮点数,未知数*10的数组占位符y_
y_ = tf.placeholder("float", [None,10])
#根据公式设置表达式
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
#设置训练方式
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
#初始化变量
init = tf.initialize_all_variables()
#生成执行session
sess = tf.Session()
#运行变量初始化
sess.run(init)
#执行1000次训练,每次从mnist库中拿出100个数进行训练
for i in range(10000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_:batch_ys})
#
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
print sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})
结果为:
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
0.9215
如果出现这个错误
Temporary failure in name resolution
那么很不幸,意味着mnist这个库下载不下来,这个库也是要访问谷歌,只能通过vpn或者国外服务器测试了。
【tensorflow】tensorflow学习记录——安装、第一个程序篇的更多相关文章
- [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …
[Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Pyth ...
- OpenGL学习笔记1——第一个程序
学习的参考书基本是按照GL编程指南,如果有消息机制概念,对于GLUT的理解是很自然的.下面就按照自己写的第一个程序详细解释一下GL,还是比较容易上手的. 程序实现的功能是,根据当前随即种子摇出来的结果 ...
- DirectX11 学习笔记1 - 第一个程序
为了加快学习速度,和使程序更加easy理解. 我把sampler tutorial里面的一个样例 的固定代码和常常修改的代码经过简单的类的封装了一下. 以后学习的时候就能够仅仅在还有一个文件写ren ...
- 知乎TensorFlow入门学习记录
知乎地址:https://zhuanlan.zhihu.com/p/30487008 import tensorflow as tf a=tf.placeholder(tf.int16) # 接受的数 ...
- ICE学习第二步-----从第一个程序了解ICE(HelloWorld)
ICE(Internet Communications Engine)是一种面向对象的中间件平台,主要用于网络通讯.它为面向对象的“客户端-服务器”模型的应用提供了一组很好的工具和API接口.目前在全 ...
- 重新学习之spring第一个程序,配置IOC容器
第一步:导入相关jar包(此范例导入的是spring3.2.4版本,spring2.5版本只需要导入spring核心包即可) 第二步:在项目的src下配置applicationContext.xml的 ...
- android学习三---创建第一个程序
1.创建一个Helloworld程序 1.1 new-android application 点击file-new-android application出现如下界面 填上应用名,项目名,包名,选择所 ...
- LoadRunner学习记录--安装遇到的问题一
安装过程中的出现了此计算机上缺少vc2005_sp1_with_atl_fix_redist 需要到这个目录下lrunner\En\prerequisites\vc2005_sp1_redist\ 手 ...
- 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》
一.课程笔记 1.1 软件开发周期 (1)需求分析阶段 分析客户的业务和数据处理需求. (2)概要设计阶段 设计数据库的E-R模型图,确认需求信息的正确和完整. /* E-R图:实体-关系图(Ent ...
随机推荐
- SQL-基础学习4--聚集函数:AVG(),COUNT(),MAX(),MIN(),SUM();聚集不同值:DISTINCT
第九课 9.1 聚集函数(对某些行运行的函数,计算并返回一个值) 我们经常需要汇总数据而不用把它们实际检索出来,为此SQL提供了专门的函数.使用这些函数,SQL查询可用于检索数据,以便分析和报表生成. ...
- Mac测试模拟慢网速
先普及一下Kb,KB,Kbps,Mb,Mbps等一些列概念 1Byte = 8bit 1KB (Kilobyte 千字节)=1024Byte 1MB (Megabyte,兆字节,简称“兆”)=1024 ...
- HDU1087上升子序列的最大和
解法一 此题是一个简单的动态规划问题,用dp[i]记做最后一步经过第i个数所得到的最大sum值,则结果=max(dp[i]),i=1,...n.考虑dp[i]的前一步会经过那里?假设dp[i]的前一 ...
- [资料分享]GIS+=地理信息+云计算+大数据+容器+物联网+...论文、会议、讲座资料分享
分享地址 http://pan.baidu.com/s/1gesDSB5 部分内容截图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5 ...
- 24. Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
转:http://blog.csdn.net/linxingliang/article/details/52069509 凡是被spring管理的类,实现接口EnvironmentAware 重写方法 ...
- HTML5 Canvas 八星聚义动态效果
昔有石碣村七星聚义,今有Canvas八星聚义.动态效果是,八颗星以等速螺线慢慢向中心聚集,最后汇聚成一颗. 效果: 代码: <!DOCTYPE html> <html lang=&q ...
- GlusterFS源代码解析 —— GlusterFS 内存分配方式
原文地址:http://blog.csdn.net/wangyuling1234567890/article/details/24564891 GlusterFS 的内存分配主要有两种方式,一种是内存 ...
- iWatch报错: Missing com.apple.developer.healthkit entitlement
今天开发iWatch项目,报错: Optional (Error "Missing come.apple.developer.healthkit entitlement.") Us ...
- HDU 4927 大数
题意非常easy: 对于长度为n的数.做n-1遍.生成的新数列: b1=a2-a1 b2=a3-a2 b3=a4-a3 c1=b2-b1 c2=b3-b2 ans=c2-c1 最后推出公式: ...
- 可以添加自定义的Select控件
1.控件dom <select name="WebSiteTarget" id="WebSiteTarget" class="w1" ...