windows下某些tensorflow例子跑不成功,比如https://www.tensorflow.org/tutorials/wide 中的例子報下面的錯誤:‘
'NoneType' object has no attribute 'bucketize'
因此決定在Linux環境上安裝tf。
樓主用的linux系統為ubuntu-16.04.2-desktop-amd64, 安裝在virtualbox 5.1.18版本上。
注意unbuntu需要是64位的!!! tensorflow官方安裝包目前不支持32位的os。
1. 配置pip環境
1) 安裝pip:
sudo apt install python3-pip
2) 更新pip源
國外的pip源不穩定, 添加國內豆瓣的pip源
在主目錄下創建.pip文件夾
mkdir ~/.pip
然后在該目錄下創建pip.conf文件編寫如下內容:
[global] trusted-host = pypi.douban.com index-url = http://pypi.douban.com/simple
3) 將pip版本從8.1.1升級成9.0.1
sudo -H pip3 install --upgrade pip
2. 下載tensorflow whl文件並安裝
https://pypi.python.org/pypi/tensorflow有tensorflow版本列表:

我們選擇與python 3.5對應的tensorflow版本。直接安裝tensorflow whl的命令為:
sudo -H pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl
由於tensorflow的whl較大, 可能由於網絡不穩定下載失敗。 也可以用迅雷將whl下載下來,然后安裝,對應安裝命令為:
sudo -H pip3 install --upgrade tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl
上面的whl路徑根據實際情況修改。
我這里安裝log如下:
jason@jason-ub:/media/sf_vmshare$ sudo -H pip3 install --upgrade tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl
Processing ./tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl
Requirement already up-to-date: six>=1.10.0 in /usr/lib/python3/dist-packages (from tensorflow==1.0.1)
Collecting numpy>=1.11.0 (from tensorflow==1.0.1)
Downloading numpy-1.12.1-cp35-cp35m-manylinux1_x86_64.whl (16.8MB)
100% |████████████████████████████████| 16.8MB 66kB/s
Requirement already up-to-date: wheel>=0.26 in /usr/lib/python3/dist-packages (from tensorflow==1.0.1)
Collecting protobuf>=3.1.0 (from tensorflow==1.0.1)
Downloading protobuf-3.2.0-cp35-cp35m-manylinux1_x86_64.whl (5.6MB)
100% |████████████████████████████████| 5.6MB 174kB/s
Collecting setuptools (from protobuf>=3.1.0->tensorflow==1.0.1)
Downloading setuptools-34.3.2-py2.py3-none-any.whl (389kB)
100% |████████████████████████████████| 399kB 717kB/s
Collecting packaging>=16.8 (from setuptools->protobuf>=3.1.0->tensorflow==1.0.1)
Downloading packaging-16.8-py2.py3-none-any.whl
Collecting appdirs>=1.4.0 (from setuptools->protobuf>=3.1.0->tensorflow==1.0.1)
Downloading appdirs-1.4.3-py2.py3-none-any.whl
Collecting pyparsing (from packaging>=16.8->setuptools->protobuf>=3.1.0->tensorflow==1.0.1)
Downloading pyparsing-2.2.0-py2.py3-none-any.whl (56kB)
100% |████████████████████████████████| 61kB 1.3MB/s
Installing collected packages: numpy, pyparsing, packaging, appdirs, setuptools, protobuf, tensorflow
Found existing installation: pyparsing 2.0.3
Not uninstalling pyparsing at /usr/lib/python3/dist-packages, outside environment /usr
Found existing installation: setuptools 20.7.0
Not uninstalling setuptools at /usr/lib/python3/dist-packages, outside environment /usr
Successfully installed appdirs-1.4.3 numpy-1.12.1 packaging-16.8 protobuf-3.2.0 pyparsing-2.2.0 setuptools-34.3.2 tensorflow-1.0.1
3. 測試安裝效果
為了驗證安裝效果, 我們跑一下https://www.tensorflow.org/tutorials/wide中的線性模型示例。
從https://github.com/tensorflow/tensorflow將tensorflow的所有代碼下載下來。
這個例子需要依賴pandas,如果沒有安裝過,可以用下面命令安裝:
sudo pip3 install pandas
然后進入tensorflow-master/tensorflow/examples/learn目錄。 運行:
python3.5 wide_n_deep_tutorial.py --model_type=wide
結果符合預期:

注意直接用python不行, 默認python是 2.7版本。

也可以修改~/.bashrc, 添加:
alias python='/usr/bin/python3.5'
然后:
source ~/.bashrc
這樣后續可以直接使用python命令。
如果有six包相關報錯, 可以執行下面的命令安裝six:
sudo easy_install --upgrade six
