pythonを勉強中です。
以下のコードを実行する時に
エラーメッセージが発生しました。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "game.py", line 155, in <module> model = L.Classifier(network.AgentNet(), lossfun=softmax_cross_entropy) File "C:\Users\Desktop\Deep\network.py", line 21, in __init__ net += [('_relu1', F.relu())] TypeError: relu() missing 1 required positional argument: 'x'
該当のソースコード
network.py
import numpy as np import chainer from chainer import cuda, Function, gradient_check, report, training, utils, Variable from chainer import datasets, iterators, optimizers, serializers from chainer import Link, Chain, ChainList import chainer.functions as F import chainer.links as L FILTERS_NUM = 50 HIDDEN_LAYER_NUM = 10 class AgentNet(Chain): def __init__(self): super(AgentNet, self).__init__() net = [('conv1', L.Convolution2D(1, FILTERS_NUM, 3, 1, 1, nobias=True))] net += [('bn1', L.BatchNormalization(FILTERS_NUM))] net += [('_relu1', F.relu())] for i in range(HIDDEN_LAYER_NUM - 2): net += [('conv{}'.format(i + 2), L.Convolution2D(FILTERS_NUM, FILTERS_NUM, 3, 1, 1, nobias=True))] net += [('bn{}'.format(i + 2), L.BatchNormalization(FILTERS_NUM))] net += [('_relu{}'.format(i + 2), F.relu())] net += [('conv{}'.format(HIDDEN_LAYER_NUM), L.Convolution2D(FILTERS_NUM, 1, 1, 1, 0, nobias=False))] with self.init_scope(): for n in net: if not n[0].startswith('_'): setattr(self, n[0], n[1]) self.forward = net def __call__(self, x): size = x.data.shape[0] for n, f in self.forward: if not n.startswith('_'): x = getattr(self, n)(x) else: x = f(x) x = F.reshape(x, (size, 64)) if chainer.config.train: return x return F.softmax(x)
試したこと
もともとこのコードはここから
引っ張ってきたものでそのまま実行しようとすると
AttributeError: module 'chainer.functions' has no attribute 'ReLU'
のようなエラーがでて、調べたところF.ReLuではだめで、F.reluとしなければならないことがわかり修正すると一番上のエラーがでてきました。
補足情報(FW/ツールのバージョンなど)
バージョンは3.6です
回答3件
あなたの回答
tips
プレビュー