导入Lasagne时报错无法从theano.sandbox.rng_mrg导入MRG_RandomStreams
问题原因
这个报错是Lasagne和Theano的版本不兼容导致的:Lasagne已经停止维护多年,仅适配0.9.x及更早版本的Theano。你当前安装的Theano版本过高,新版本已经将MRG_RandomStreams从theano.sandbox.rng_mrg模块移除/迁移了路径,所以Lasagne内部的导入语句调用失败。
解决方案
你可以根据自己的需求选择以下任意一种方案解决:
- 方案1:降级Theano到适配版本
直接执行pip命令安装指定版本的Theano即可,配套对应版本的numpy可以避免后续出现其他兼容问题:pip install theano==0.9.0 numpy==1.15.4 - 方案2:手动修改Lasagne源码适配新版本Theano
打开报错提示的Lasagne源码文件/usr/local/lib/python3.7/dist-packages/lasagne/layers/noise.py,将第6行的导入语句:
替换为新路径的导入语句即可:from theano.sandbox.rng_mrg import MRG_RandomStreams as RandomStreams
如果上述路径还是报错,可尝试替换为from theano.tensor.random.utils import MRG_RandomStreams as RandomStreamsfrom theano.rng_mrg import MRG_RandomStreams as RandomStreams,不同版本的Theano路径略有差异。 - 方案3:替换技术栈
Lasagne已经多年没有更新维护,后续还会出现更多环境兼容问题。如果你的项目不是必须依赖Lasagne,建议直接切换到当前仍在活跃维护的同类深度学习框架,比如PyTorch、TensorFlow/Keras。
内容的提问来源于stack exchange,提问作者Sanskar Soni
相关产品推荐
相关产品推荐

