错误(theano.gof.opt):优化失败由于:constant_folding
ERROR (theano.gof.opt): Optimization failure due to: constant_folding
在Neural Networks and Deep Learning中,有一个名为network3的对象(这是一个PY文件,为python 2.7和theano 0.7编写)。我用 python 3.6 和 theano 1.0.3 将其修改为 运行。但是,当我 运行 以下代码时:
import network3
from network3 import Network
from network3 import ConvPoolLayer , FullyConnectedLayer , SoftmaxLayer
training_data , validation_data , test_data = network3.load_data_shared()
mini_batch_size = 10
net = Network([FullyConnectedLayer(n_in=784, n_out=100),
SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size)
net.SGD(training_data , 60, mini_batch_size , 0.1, validation_data , test_data)
它返回了很多具有类似模式的错误,如下所示:
ERROR (theano.gof.opt): Optimization failure due to: constant_folding
ERROR (theano.gof.opt): node: MakeVector{dtype='int64'}(TensorConstant{10}, TensorConstant{100})
AttributeError: module 'numpy.core.multiarray' has no attribute '_get_ndarray_c_version'
那么输出的最后一段是:
AttributeError: ('The following error happened while compiling the node', Elemwise{Composite{(i0 * (i1 + i2))}}(TensorConstant{10}, TensorConstant{1}, <TensorType(int64, scalar)>)
, '\n', "module 'numpy.core.multiarray' has no attribute '_get_ndarray_c_version'")
我认为第 1379 行导致错误:
1298 libraries=self.libraries(),
1299 header_dirs=self.header_dirs(),
-> 1300 c_compiler=self.c_compiler(),
1301 )
1302
~\AppData\Local\Continuum\Anaconda3\lib\site-packages\theano\gof\cc.py in cmodule_key_(self, fgraph, no_recycling, compile_args, libraries, header_dirs, insert_config_hash, c_compiler)
1377 # DynamicModule always add the include <numpy/arrayobject.h>
1378 sig.append('NPY_ABI_VERSION=0x%X' %
-> 1379 np.core.multiarray._get_ndarray_c_version())
1380 if c_compiler:
1381 sig.append('c_compiler_str=' + c_compiler.version_str())
AttributeError: ('The following error happened while compiling the node', Elemwise{Composite{(i0 * (i1 + i2))}}(TensorConstant{10}, TensorConstant{1}, <TensorType(int64, scalar)>), '\n', "module 'numpy.core.multiarray' has no attribute '_get_ndarray_c_version'")
我用谷歌搜索了这些问题,但找不到相关的解决方案。你能帮忙吗?
提前致谢。
你的 numpy 版本是多少?打开 python 终端和 运行 以下行 from numpy import __version__
然后 print(__version__)
。在我使用的 numpy 版本 (1.14.2
) 中,此函数定义明确。
有时包更新会贬低一个功能甚至删除一个功能,但也会提出一个新功能来替换旧功能。我不知道是否是这种情况,但请始终注意这种可能性。
在Neural Networks and Deep Learning中,有一个名为network3的对象(这是一个PY文件,为python 2.7和theano 0.7编写)。我用 python 3.6 和 theano 1.0.3 将其修改为 运行。但是,当我 运行 以下代码时:
import network3
from network3 import Network
from network3 import ConvPoolLayer , FullyConnectedLayer , SoftmaxLayer
training_data , validation_data , test_data = network3.load_data_shared()
mini_batch_size = 10
net = Network([FullyConnectedLayer(n_in=784, n_out=100),
SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size)
net.SGD(training_data , 60, mini_batch_size , 0.1, validation_data , test_data)
它返回了很多具有类似模式的错误,如下所示:
ERROR (theano.gof.opt): Optimization failure due to: constant_folding
ERROR (theano.gof.opt): node: MakeVector{dtype='int64'}(TensorConstant{10}, TensorConstant{100})
AttributeError: module 'numpy.core.multiarray' has no attribute '_get_ndarray_c_version'
那么输出的最后一段是:
AttributeError: ('The following error happened while compiling the node',
Elemwise{Composite{(i0 * (i1 + i2))}}(TensorConstant{10}, TensorConstant{1}, <TensorType(int64, scalar)>)
, '\n', "module 'numpy.core.multiarray' has no attribute '_get_ndarray_c_version'")
我认为第 1379 行导致错误:
1298 libraries=self.libraries(),
1299 header_dirs=self.header_dirs(),
-> 1300 c_compiler=self.c_compiler(),
1301 )
1302
~\AppData\Local\Continuum\Anaconda3\lib\site-packages\theano\gof\cc.py in cmodule_key_(self, fgraph, no_recycling, compile_args, libraries, header_dirs, insert_config_hash, c_compiler)
1377 # DynamicModule always add the include <numpy/arrayobject.h>
1378 sig.append('NPY_ABI_VERSION=0x%X' %
-> 1379 np.core.multiarray._get_ndarray_c_version())
1380 if c_compiler:
1381 sig.append('c_compiler_str=' + c_compiler.version_str())
AttributeError: ('The following error happened while compiling the node', Elemwise{Composite{(i0 * (i1 + i2))}}(TensorConstant{10}, TensorConstant{1}, <TensorType(int64, scalar)>), '\n', "module 'numpy.core.multiarray' has no attribute '_get_ndarray_c_version'")
我用谷歌搜索了这些问题,但找不到相关的解决方案。你能帮忙吗?
提前致谢。
你的 numpy 版本是多少?打开 python 终端和 运行 以下行 from numpy import __version__
然后 print(__version__)
。在我使用的 numpy 版本 (1.14.2
) 中,此函数定义明确。
有时包更新会贬低一个功能甚至删除一个功能,但也会提出一个新功能来替换旧功能。我不知道是否是这种情况,但请始终注意这种可能性。