1)我們現(xiàn)在利用pip install Theano安裝的theano版本為0.9磕潮,而書中用的是0.6,即使用的網(wǎng)上的python3.5版本的代碼容贝,有一處導(dǎo)包的地方也會(huì)非常蛋疼自脯,這點(diǎn)要感謝spyder的代碼提示功能,不然網(wǎng)上太難查了斤富,不是能力問題膏潮,天朝停止了vpn,google上不了了满力,就從這點(diǎn)可以看出在國外做研究要比國內(nèi)有優(yōu)勢(shì)得多焕参。
導(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版本潦嘶,太新了涩嚣,此時(shí)會(huì)報(bào)錯(cuò):
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
此時(shí)需要重新安裝版本的gcc和g++:重點(diǎn)參考這點(diǎn)《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++
驗(yàn)證:使用gcc -v航厚、g++ -v查看當(dāng)前的gcc、g++版本
如果替換回來可以使用同樣的方式操作使其指向想要的版本锰蓬。
which gcc 顯示當(dāng)前gcc版本所在的目錄
gcc 和g++一般在/usr/bin下幔睬。所以使用cd /usr/bin/ 進(jìn)入該文件目錄;使用ls -al | grep gcc查看當(dāng)前系統(tǒng)中所有的gcc