zoukankan      html  css  js  c++  java
  • ubuntu18.04 安装指定版本的tensorflow

    一、起因

    ​ 最近在学习《TensorFlow实战Google深度学习框架(第2版)》和《21个项目玩转深度学习 基于TensorFlow的实践详解》中发现,两本书所使用的tensorflow的版本都是1.4.0,然而通过pip或者pycharm安装的tensorflow都还是1.14.0,所以我选择自己来安装一下tensorflow1.4.0

    二、环境

    名称 版本
    ubuntu 18.04
    python 3.6
    pycharm 2019.2

    三、安装踩坑

    其实使用pip安装非常简单,只要:

    pip install tensorflow==1.4.0
    

    但是呢,因为各种各样的原因,这里面有各种各样的坑,所以我推荐根据我的下面的步骤一点点来:


    1、创建虚拟环境

    在这里,我们使用virtualenv,所以:

    export all_proxy="https://127.0.0.1:1080/"	#因为众所周知的原因,我们需要设置代理
    virtualenv --no-site-packages -p python3.6 ./venv #利用python3.6创建虚拟环境
    #会在Installinng steuptools, pip, wheel...卡一会儿,不过很快就能done.
    

    当 virtualenv 处于有效状态时,shell 提示符带有 (venv) 前缀。

    激活虚拟环境并安装tensorflow1.4.0:

    cd venv/bin
    source activate
    pip3 install tensorflow==1.4.0
    deactivate	#安装完毕即可退出虚拟环境
    

    最后按如下配置在pycharm中open一个新项目:

    2019-09-04 16-14-13 的屏幕截图

    在安装的过程中主要回碰到如下几个坑:

    2、坑1:Missing dependencies for SOCKS support.

    如下图的报错: 2019-09-04 15-00-54 的屏幕截图

    其实这个还是因为是代理的关系啦,虽然我们设置了代理,但在没有安装 pysocks 时。Python 本身并不支持 socks5 代理,而环境变量中则设置了 socks5 的代理。

    解决方案:

    unset all_proxy && unset ALL_PROXY 
    pip install pysocks
    

    结果

    2019-09-04 15-04-08 的屏幕截图

    3、ImportError: cannot import name main

    这是因为pip更新为10.0.0.0之后函数所有变动造成这个问题

    解决方案:

    sudo vim /usr/bin/pip
    

    将原来的:

    from pip import main
    if __name__ == '__main__':
        sys.exit(main())
    

    修改成:

    from pip import __main__
    if __name__ == '__main__':
        sys.exit(__main__._main())
    

    4、坑3:Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken

    报错:Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fef2a8f8320>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /simple/setuptools/

    这个主要问题应该还是pip它不走代理,解决方案见下面的(四、总结-4.pip国内镜像)

    四、总结

    这里很多的坑还是在于走不走代理的问题——系统有代理吗?终端走代理吗?pip走代理吗?pip使用的是国内镜像吗?

    1、系统有无代理:

    2019-09-04 15-58-59 的屏幕截图

    2、终端走代理吗?

    如果要临时走一下代理,可以这么设置:

    export http_proxy=http://127.0.0.1:8080
    export https_proxy=http://127.0.0.1:8080
    export all_proxy="https://127.0.0.1:1080/"
    

    3、pip走代理吗?pip似乎只走http/https代理,所以在终端中设置了代理是无效的,还是使用国内镜像比较靠谱

    4、pip走国内镜像:

    在此用户home目录下,新建一个隐藏文件夹.pip,并新建一个设置文件pip.conf,即:

    cd ~
    mkdir .pip
    ck .pip
    vim pip.conf
    

    并输入以下内容:

    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple
    [install]
    trusted-host=mirrors.aliyun.com
    

    五、测试:

    在pycharm中新建文件并输出:

    import tensorflow as tf
    a = tf.constant(1.0)
    b = tf.constant(2.0)
    with tf.Session() as sess:
        print(sess.run(a+b))
    

    如果输出:

    2019-09-04 16-25-16 的屏幕截图
    则表示安装完成

    以上.

  • 相关阅读:
    BZOJ 1088 模拟(扫雷经验…)
    BZOJ 1529
    BZOJ 3224
    BZOJ 1192
    BZOJ 1012
    博客搬家说明
    BZOJ 2423 DP
    BZOJ 1789&1830 推式子 乱搞
    BZOJ 1588
    拆点:虫洞
  • 原文地址:https://www.cnblogs.com/huangming-zzz/p/11459877.html
Copyright © 2011-2022 走看看