1)我們現(xiàn)在利用pip install Theano安裝的theano版本為0.9,而書中用的是0.6,即使用的網(wǎng)上的python3.5版本的代碼,有一處導(dǎo)包的地方也會非常蛋疼,這點要感謝spyder的代碼提示功能,不然網(wǎng)上太難查了,不是能力問題,天朝停止了vpn,google上不了了,就從這點可以看出在國外做研究要比國內(nèi)有優(yōu)勢得多。
導(dǎo)包問題:原文中的network3.py中
? ? ? #from theano.tensor.signal.pool import downsample
? ? ? ?需換成
? ? ? ?from theano.tensor.signal.pool import pool_2d
? ? ? ?相應(yīng)的代碼部分:
? ? ? ?# pooled_out = downsample.max_pool_2d(
? ? ? ? 換成
? ? ? ? pooled_out = pool_2d(
原因是theano 0.9中的dowmsample沒有了,并且max_pool_2d沒有了。
2)gcc/g++版本問題,我安裝的是ubuntu 16.4,內(nèi)置的gcc和g++都是5.4版本,太新了,此時會報錯:
ImportError: /root/.theano/compiledir_Linux-4.8--generic-x86_64-with-debian-stretch-sid-x86_64-3.5.2-64/tmpn_1ihp82/m4b532c190111acd0c7b4d992f1ab7bc1.so: undefined symbol: _ZNSt8ios_base4InitD1Ev
此時需要重新安裝版本的gcc和g++:重點參考這點《http://blog.csdn.net/lyy14011305/article/details/63685779》
執(zhí)行更新
sudo ?apt-get update
安裝舊版本的GCC
sudo apt-get ?install gcc-4.8
sudo apt-get ?install g++-4.8
刪除原來的GCC、G++連接
?sudo rm gcc
sudo rm g++
使連接指向新版本的gcc、g++
sudo ln -s gcc-4.8 gcc
sudo ln -s g++-4.8 ?g++
驗證:使用gcc -v、g++ -v查看當(dāng)前的gcc、g++版本
如果替換回來可以使用同樣的方式操作使其指向想要的版本。
which gcc 顯示當(dāng)前gcc版本所在的目錄
gcc 和g++一般在/usr/bin下。所以使用cd /usr/bin/ 進入該文件目錄;使用ls -al | grep gcc查看當(dāng)前系統(tǒng)中所有的gcc
