1)我们现在利用pip install Theano安装的theano版本为0.9,而书中用的是0.6,即使用的网上的python3.5版本的代码,有一处导包的地方也会非常蛋疼,这点要感谢spyder的代码提示功能,不然网上太难查了,不是能力问题,天朝停止了vpn,google上不了了,就从这点可以看出在国外做研究要比国内有优势得多。
导包问题:原文中的network3.py中
#from theano.tensor.signal.pool import downsample
需换成
from theano.tensor.signal.pool import pool_2d
相应的代码部分:
# pooled_out = downsample.max_pool_2d(
换成
pooled_out = pool_2d(
原因是theano 0.9中的dowmsample没有了,并且max_pool_2d没有了。
2)gcc/g++版本问题,我安装的是ubuntu 16.4,内置的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》
执行更新
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查看当前的gcc、g++版本
如果替换回来可以使用同样的方式操作使其指向想要的版本。
which gcc 显示当前gcc版本所在的目录
gcc 和g++一般在/usr/bin下。所以使用cd /usr/bin/ 进入该文件目录;使用ls -al | grep gcc查看当前系统中所有的gcc