zoukankan      html  css  js  c++  java
  • 基于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/
  • 相关阅读:
    Redis 设计与实现(第三章) -- 链表adlist
    Redis 设计与实现(第二章) -- SDS
    MySQL索引背后的数据结构及算法原理(转)
    MySQL索引原理及慢查询优化(转)
    MySQL常见的一些面试题(未完待续)
    js 获取前天、昨天、今天、明天、后天的时间
    linux 下nohup 使用
    java split 分割字符串用法
    Python 获取URL访问的HEAD头信息
    MySQL日期数据类型、时间类型使用总结
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467641.html
Copyright © 2011-2022 走看看