CentOS 6 安裝 php 5.6

CentOS 6 安裝 php 5.6

移除本來的 php
yum -y remove php php*
安裝測試版本的 yum資料庫
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

安裝php56
yum install php56w php56w-opcache php56w-xml php56w-xmlrpc php56w-pdo php56w-mysql php56w-mcrypt php56w-mbstring php56w-curl php56w-gd

記得啟用OPcache
註:php套件沒有移除乾淨的話,會出現錯誤,ex php-commn

CentOS 6 x86_64 及Win7 安装TensorFlow

CentOS 6 x86_64 及Win7 安装TensorFlow

1) /lib64/libc.so.6: version `GLIBC_2.14′ not found 解決

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar -xvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure -prefix=/usr -disable-profile -enable-add-ons -with-headers=/usr/include -with-binutils=/usr/bin
make && make install

2)GCC版本太舊,升级GCC到4.8.3

$ wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.3/gcc-4.8.3.tar.gz
$ tar -zxvf gcc-4.8.3.tar.gz
$ cd gcc-4.8.3
$ ./contrib/download_prerequisites 
$ mkdir build
$ cd build
$ yum -y install gcc-c++
$ ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
$ make && make install
$ cp ./stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19 /usr/lib64
$ cd /usr/lib64
$ rm -f /usr/lib64/libstdc++.so.6
$ ln -s libstdc++.so.6.0.19 libstdc++.so.6

跑tensorflow如果出現
「ImportError: DLL load failed with error code -1073741795」之類的動態檔讀取錯誤,問題是在CPU沒有支援「指令集擴充 AVX」。
有些CPU只有支援「指令集擴充 SSE」,然而tensorflow預設是使用AVX,所以CPU是SSE的永遠不會成功。

查詢你的CPU有無AVX範例:
https://ark.intel.com/content/www/tw/zh/ark/products/52224/intel-core-i5-2410m-processor-3m-cache-up-to-2-90-ghz.html (這顆是AVX)
https://ark.intel.com/content/www/tw/zh/ark/products/41447/intel-core-i7-930-processor-8m-cache-2-80-ghz-4-80-gt-s-intel-qpi.html (這顆是SSE)

我桌機沒有AVX,筆電有,所以剛測試一下,筆電很快就安裝起來了,桌機仍然失敗。
若CPU只有SSE的話必須手動修正tensorflow,
可以來這邊抓取相關的檔案 https://github.com/fo40225/tensorflow-windows-wheel

抓下來之後「pip install 檔名」即可安裝

另外Win7跑Tensorflow最簡單的方式就是用conda建一個虛擬環境,python選3.5,除了CPU指令集會有問題外,基本沒其他狀況。