• TensorFlow 0.9.0 从源码安装及bug修复


    为了熟悉tensorflow,我采用从源码安装,期间也熟悉了linux下的一些知识,解决了一些问题,记录如下:

    版本:

    • tensorflow:0.9.0 (GitHub: tensorflow
    • Ubuntu:14.04 64位(32位不可以,亲测有效)

    安装:

     Tensorflow(简易安装步骤)

       接下来,就可以按照Tensorflow Download and Setup中的Pip Installation开始安装,命令如下:

    # Ubuntu/Linux 64-bit, CPU only:
    $ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
    
    # Ubuntu/Linux 64-bit, GPU enabled. Requires CUDA toolkit 7.5 and CuDNN v4.  For
    # other versions, see "Install from sources" below.
    $ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl

      csdn(推荐安装步骤): 

      http://blog.csdn.net/forest_world/article/details/51306432

       官网安装步骤:

      www.tensorflow.org/   (有点混乱,建议使用csdn上步骤)

      github版本:

      https://github.com/tensorflow/tensorflow

     编译时错误(内存错误和包安装版本不对)

    编译时:virtual memory exhausted: Cannot allocate memory

     

    内存不足。

    解决方法:http://blog.csdn.net/taiyang1987912/article/details/41695895

    安装完成后,就可以测试,是否安装成功:

    $ python
    >>> import tensorflow as tf
    >>>

    如果输入命令后,结果跟上述的差不多,(GPU版的会有一些log信息),没有出现Error,那就说明安装好了,就可以测试使用啦。

    tensorflow/tools/pip_package/setup.py中,关于几个包(numpy , six, protobuf)的版本等都有规定,如果不满足,则编译代码就会报错:

    # tensorflow version
    _VERSION = '0.9.0'
    
    ...
    
    REQUIRED_PACKAGES = [
        'numpy >= %s' % numpy_version,
        'six >= 1.10.0',
        'protobuf == 3.0.0b2',
    ]

    查看这些包的命令行是:

    $ pip show numpy protobuf six

    出问题比较多的是protobufsix pip包,例如:

      Pip

    如果已经安装过pip,可以跳过这里的安装步骤。

    $ sudo apt-get install python-pip python-dev python-setuptools build-essential
    $ sudo pip install --upgrade pip
    $ sudo pip install --upgrade virtualenv

    为了检测是否安装好,可以查看pip的版本:

    $ pip --version
    pip 8.1.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
    • protobuf
        from google.protobuf import symbol_database as _symbol_database
        ImportError: cannot import name symbol_database

      protobuf如果已经安装了其他版本(例如python-protobuf或低版本),先要卸载掉:

    $ sudo apt-get remove python-protobuf
    $ sudo pip uninstall protobuf

    然后安装:

    $ sudo pip install --upgrade protobuf
    • six
    AttributeError: type object 'NewBase' has no attribute 'is_abstract' 

    出现这个问题,应该是six包安装有问题,可以卸载原有版本,重新安装:

    $ sudo pip uninstall six
    $ sudo pip install six --upgrade

    一般来说six包的安装位置是/usr/lib/python2.7/dist-packages,建议先试前者(工作站上也是前者),如果six版本还是没有改变,则指定安装位置,如下:

    $ sudo pip install six --upgrade --target="/usr/lib/python2.7/dist-packages"

    此处我的pip出现错误了,提示缺少utils包。

    解决方法:在python官网上下载pip最新的源码,python setup.py install

    关于GPU版,CUDA安装及编译问题,不在此作答~   安装步骤上图

    4 Uninstall

    如果想卸载掉安装的tensorflow,非常简单:

    $ sudo pip uninstall tensorflow
  • 相关阅读:
    ES6 Promise 用法转载
    移动端滚动性能优化
    Python之禅
    Day01~15
    Python
    第一章 Java起源
    IMP-00009: 导出文件异常结束 imp
    浏览器访问网页的详细内部过程
    数据库连接池
    连接数据库 六大步骤
  • 原文地址:https://www.cnblogs.com/xiaodi914/p/5687477.html
Copyright © 2020-2023  润新知