基于Docker的TensorFlow机器学习框架搭建和实例源码解读

概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的机器学习开发环境,探索人工智能的奥秘,容器随开随用方便快捷。源码解析TensorFlow容器创建和示例程序运行,为热爱机器学者降低学习难度。

默认机器已经装好了Docker(Docker安装和使用可以看我另一篇博文:Ubuntu16.04安装Docker1.12+开发实例+hello world+web应用容器)。

1.下载TensorFlow镜像

docker pull tensorflow/tensorflow
#或者
#sudo docker pull tensorflow/tensorflow

2.创建TensorFlow容器,源码解读

docker run --name xiaolei-tensortflow -it -p 8888:8888 -v ~/tensorflow:/notebooks/data  tensorflow/tensorflow
  • docker run运行镜像,
  • --name为容器创建别名,
  • -it保留命令行运行,
  • -p 8888:8888将本地的8888端口http://localhost:8888/映射,
  • -v ~/tensorflow:/notebooks/data 将本地的~/tensorflow文件夹挂载到新建容器的/notebooks/data下(这样创建的文件可以保存到本地~/tensorflow)
  • tensorflow/tensorflow为指定的镜像,默认标签为latest(即tensorflow/tensorflow:latest)

3.开启TensorFlow容器

3.1.可以直接从命令行中右键打开连接,或者在浏览器中输入localhost:8888,然后将命令行中的token粘贴上去。

4.开始TensorFlow编程(Python语言)

4.1.在首页可以New一个Python项目

4.2.tensorflow示例源码解读

from __future__ import print_function
#导入tensorflow
import tensorflow as tf
#输入两个数组,input1和input2然后相加,输出结果
with tf.Session():
    input1 = tf.constant([1.0, 1.0, 1.0, 1.0])
    input2 = tf.constant([2.0, 2.0, 2.0, 2.0])
    output = tf.add(input1, input2)
    result = output.eval()
    print("result: ", result)

4.3.运行程序,输出的结果为(运行成功)

result:  [ 3.  3.  3.  3.]

5.其他 linux,TensorFlow,Docker相关操作

5.1.关闭TensorFlow和开启TensorFlow环境

#关闭tensorflow容器
docker stop xiaolei-tensortflow

#开启TensorFlow容器
docker start xiaolei-tensortflow
#浏览器中输入 http://localhost:8888/

5.2.解决文件的读写权限

#查看读写权限
ls -l
#将tensorflow 变为属于xiaolei(系统默认)用户
sudo chown -R xiaolei tensorflow/
#将tensorflow 变为属于xiaolei(系统默认)用户组
sudo chgrp -R xiaolei tensorflow/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

教程 | Docker Compose + GPU + TensorFlow 所产生的奇妙火花

选自 hackernoon 机器之心编译 参与:黄小天、路雪 Docker 有很多优势,但是在数据科学和深度学习方面,使用 Docker 也存在一些阻碍。本文介...

33713
来自专栏C/C++基础

CUDA编译器nvcc的用法用例与问题简答

本文使用nvcc版本:Cuda compilation tools, release 5.5, V5.5.0

562
来自专栏PhpZendo

Nginx 烹调书

本书是「Complete Nginx Cookbook」一书的部分中英文对照翻译版本。

421
来自专栏乐沙弥的世界

Linux/Unix shell 脚本监控磁盘可用空间

    Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少。下面是给出的一个监控磁盘空间空间shell脚本的样本,供大家参考。

652
来自专栏DevOps时代的专栏

使用 Python 工具 Locust 进行负载测试

Locust 是一个用 Python 编写的开源的负载测试工具。 它允许您针对模拟用户行为的 Web 应用程序编写测试,然后按规模运行测试以帮助查找瓶颈或其他性...

24210
来自专栏IMWeb前端团队

AS3解析FLV格式和视频相关问题总结

为什么要解析FLV格式? 在直播项目里面遇到需要统计flash视频帧间隔时长,首帧,GOP,等关键数据的时候,不可避免的需要对flv文件进行解析。 名词定义 首...

2006
来自专栏Kubernetes

Kubernetes如何通过Devi

Device Plugins Device Pulgins在Kubernetes 1.10中是beta特性,开始于Kubernetes 1.8,用来给第三方设备...

3808
来自专栏生信技能树

给学徒的ATAC-seq数据实战

查看文章发现数据上传到了GEO,是:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE66581

1333
来自专栏ATYUN订阅号

腾讯开源围棋AI程序PhoenixGo,复现AlphaGo Zero

PhoenixGo是一个围棋AI程序,它执行AlphaGo Zero论文“掌握无人知识的Go游戏”。它也被称为FoxGo中的“BensonDarr”,CGOS中...

1072
来自专栏SDNLAB

基于网络流量的SDN最短路径转发应用

网络的转发是通信的基本功能,其完成信息在网络中传递,实现有序的数据交换。通过SDN控制器的集中控制,可以轻松实现基础的转发算法有二层MAC学习转发和基于跳数的最...

35810

扫码关注云+社区