我正在尝试使用 Chainer (v4.0.0b1) 构建具有多 GPU 的 LSTM 网络。如以下代码所示。
import numpy as np
import chainer
from chainer import optimizers, Chain, training, iterators, serializers, cuda, Variable
import chainer.functions as F
import chainer.links as L
...
class Network(Chain):
def __init__(self):
super(Network, self).__init__()
with self.init_scope():
...
self.fc1 = L.Liner(3000, 1000).to_gpu(1)
self.lstm = L.LSTM(1000, 1000).to_gpu(1)
self.fc2 = L.Liner(1000, 3000).to_gpu(1)
...
def __call__(self, x, t):
...
...
但是,LSTM 链接变为“NoneType”。如以下调用错误。
TypeError: 'NoneType' object is not callble
我觉得这很奇怪,所以我显示了“self.lstm”。结果,显示“无”。例如,“Link”的 fc1 显示如下。
<chainer.links.connection.linear.Linear object at hogehoge>
我发现“self.lstm = L.LSTM(1000, 1000).to_gpu(1)”中的“self.lstm”不能声明为链接。但是,我不知道为什么我不能声明它。
我使用Chainer 的 Docker作为执行环境。
谢谢你的回答。