Я пытаюсь построить сеть LSTM с несколькими графическими процессорами, используя Chainer (v4.0.0b1).
Как в следующем коде.
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". В результате «Нет» было отображено. Например, fc1, который является «Link», отображается следующим образом.
<chainer.links.connection.linear.Linear object at hogehoge>
Я обнаружил, что "self.lstm" не может быть объявлен ссылкой в "self.lstm = L.LSTM (1000, 1000) .to_gpu (1)". Однако я не знаю, почему я не могу это объявить.
Я использую Docker Chainer's в качестве среды выполнения.
Спасибо, что ответили.