tensorflow 初玩
来源:互联网 发布:淘宝买家常问问题 编辑:程序博客网 时间:2024/06/02 07:27
1.前言
之前在一家AI算法公司呆了一小阵,虽然自己不是做算法这一块的,不过对tensorflow也是久闻大名了。 最近有些时间,就尝试着跑一下官方的例子,试试味道。
tensorflow训练部分用的语言主要是python,所以我是先大概浏览下python的语法的。
2.环境搭建
然后就是搭建tensorflow环境了。 由于懒,所以我还是打算用现成的docker 镜像。
在https://hub.docker.com/ 搜索了下发现有tensorflow 的官方镜像:
https://hub.docker.com/r/tensorflow/tensorflow/
docker源码在tensorflow的GitHub源码里面有,我尝试了下编译源码里面的dockerfile,没有成功,所以还是直接用现成镜像了。
官方的启动说明是这样的
docker run -it -p 8888:8888 tensorflow/tensorflowGo to your browser on http://localhost:8888/
不过如果这样启动的话,tensorboard的端口没有导出,没办法使用tensorboard。 我修改了下启动的命令,加了点私货。并写成了一个脚本,方便启动。
#!/bin/bashsudo docker run --name tensorflow_test --rm -it -p 8888:8888 -p 6006:6006 -v ~/workspacke/tensorflow_notebooks:/notebooks tensorflow/tensorflow
其中tensorflow_notebooks是我host机的一个目录,绑定到notebooks目录下。 这样Jupyter Notebook 的文件就会直接保存在本地。
PS:这个官方tensorflow docker 镜像的运行环境是个Jupyter Notebook 。
运行
......[I 08:53:12.631 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).[C 08:53:12.632 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=294123c9afa199856c63dc9eb29266c79ac55c02c92f3a8a
得到了一个网址,直接浏览器打开http://localhost:8888/?token=294123c9afa199856c63dc9eb29266c79ac55c02c92f3a8a
就可以来到Jupyter界面了。
3.测试官方例子
下面就来测试下官方的例子。
1.将tensorflow官方源码拷贝到刚才绑定的tensorflow_notebooks 文件夹下。
2.在浏览器的Jupyter 右上角点击new -> terminal ,打开一个终端。
3.运行 tensorflow/tensorflow/examples/tutorials/mnist/fully_connected_feed.py
PS: 这是一个前馈神经网络训练代码。MNIST是机器学习领域的一个经典问题,指的是让机器查看一系列大小为28x28像素的手写数字灰度图像,并判断这些图像代表0-9中的哪一个数字。
mnist目录下还有其他很多例子,读者可以自行尝试。
然后就能看到训练过程:
Step 900: loss = 0.39 (0.003 sec)Training Data Eval: Num examples: 55000 Num correct: 47368 Precision @ 1: 0.8612Validation Data Eval: Num examples: 5000 Num correct: 4344 Precision @ 1: 0.8688Test Data Eval: Num examples: 10000 Num correct: 8686 Precision @ 1: 0.8686Step 1000: loss = 0.55 (0.007 sec)Step 1100: loss = 0.66 (0.077 sec)Step 1200: loss = 0.50 (0.005 sec)Step 1300: loss = 0.44 (0.006 sec)Step 1400: loss = 0.39 (0.003 sec)Step 1500: loss = 0.43 (0.004 sec)Step 1600: loss = 0.41 (0.004 sec)Step 1700: loss = 0.49 (0.004 sec)Step 1800: loss = 0.45 (0.005 sec)Step 1900: loss = 0.47 (0.003 sec)Training Data Eval: Num examples: 55000 Num correct: 49413 Precision @ 1: 0.8984Validation Data Eval: Num examples: 5000 Num correct: 4517 Precision @ 1: 0.9034Test Data Eval: Num examples: 10000 Num correct: 9031 Precision @ 1: 0.9031
到此,跑官方例子基本没有问题了。
4.tensorboard
然后再尝试下tensorboard。 那tensorboard是什么呢?
为了更方便 TensorFlow 程序的理解、调试与优化,我们发布了一套叫做 TensorBoard 的可视化工具。你可以用
TensorBoard 来展现你的 TensorFlow 图像,绘制图像生成的定量指标图以及附加数据。
要看tensorboard,首先要找到log输出的目录。 通过查看fully_connected_feed.py 源码,我们发现一下参量:
parser.add_argument( '--log_dir', type=str, default=os.path.join(os.getenv('TEST_TMPDIR', '/tmp'), 'tensorflow/mnist/logs/fully_connected_feed'), help='Directory to put the log data.' )
可以确定log目录在/tmp/tensorflow/mnist/logs/fully_connected_feed
在Jupyter 终端执行命令
# tensorboard --logdir=/tmp/tensorflow/mnist/logs/fully_connected_feedStarting TensorBoard 55 at http://3f831751e0b2:6006(Press CTRL+C to quit)
其中3f831751e0b2是docker容器的ID ,需要替换为本地地址。
打开http://localhost:6006/ 就可以看到tensorboard的内容了。
end
好了,至此,第一次运行tensorflow训练代码的就完成了。
- tensorflow 初玩
- 【TensorFlow动手玩】队列
- 【TensorFlow动手玩】基本概念: Tensor, Operation, Graph
- 【TensorFlow动手玩】数据导入2
- 【TensorFlow动手玩】数据导入1
- 如何在 Windows 系统玩 TensorFlow
- 利用 TensorFlow + Keras 玩 Atari 游戏
- 利用 TensorFlow + Keras 玩 Atari 游戏
- 用Tensorflow基于Deep Q Learning DQN 玩Flappy Bird
- 用Tensorflow基于Deep Q Learning DQN 玩Flappy Bird
- 在Windows上玩TensorFlow(一)——安装Docker
- 在Windows上玩TensorFlow(一)——安装Docker
- 在Windows上玩TensorFlow(一)——安装Docker
- 【TensorFlow动手玩】常用集合: Variable, Summary, 自定义
- 在Windows上玩TensorFlow(一)——安装Docker
- 教程 | 没有博士学位,照样玩转TensorFlow深度学习
- 在Windows上玩TensorFlow(一)——安装Docker
- 那些TensorFlow上好玩的和黑科技
- Redis从入门到项目实践-笔记
- 图解机器学习
- subList的使用缺陷
- hdu 5980 Find Small A(位运算思维)
- Android JNI的实例代码流程图
- tensorflow 初玩
- json与jsonp
- 数据库性能优化详解
- 电脑手机信息工程书籍
- 【TLE与否】10123UVa不要歪——记忆化的重要性
- 一夜之间,退货无数!快递爆仓!苹果这次真的“亏惨了”...
- 对标iPhone X?华为Mate 10或改名Mate X!
- 【国际】墨西哥寻求金融科技监管解决方案
- 【国际】欧洲央行发布金融科技银行执照申请指南