gpt4 book ai didi

python - 千层面.layers.DenseLayer : "__init__() takes at least 3 arguments"

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:08 25 4
gpt4 key购买 nike

我正在使用 Lasagne+Theano 创建 ResNet,但在使用 DenseLayer 时遇到了困难。如果我使用 http://lasagne.readthedocs.io/en/latest/modules/layers/dense.html 上的示例它有效。

l_in = InputLayer((100, 20))
l1 = DenseLayer(l_in, num_units=50)

但是如果我想在我的项目中使用它:

#other layers

resnet['res5c_branch2c'] = ConvLayer(resnet['res5c_branch2b'], num_filters=2048, filter_size=1, pad=0, flip_filters=False)
resnet['pool5'] = PoolLayer(resnet['res5c'], pool_size=7, stride=1, mode='average_exc_pad', ignore_border=False)
resnet['fc1000'] = DenseLayer(resnet['pool5'], num_filter=1000)

Traceback (most recent call last):File "convert_resnet_101_caffe.py", line 167, in <module>
resnet['fc1000'] = DenseLayer(resnet['pool5'], num_filter=1000)TypeError: __init__() takes at least 3 arguments (2 given)

最佳答案

DenseLayer 采用两个位置参数:incoming、num_units。您可以像这样实例化它:

DenseLayer(resnet['pool5'], num_filter=1000)

请注意,这与示例代码不同:

DenseLayer(l_in, num_units=50)

由于您传递的关键字参数不是 num_units 作为第二个参数,我认为 num_filter 被解释为其中之一**kwargs,并且 DenseLayer 仍然需要 num_units` 参数,并且由于您不提供它而引发错误。

您可以在 num_filter 之前提供 num_units 参数,或者如果这只是一个拼写错误,请将 num_filter 更改为 num_units。 (第二个选项对我来说似乎更有可能,因为虽然我不熟悉您正在使用的库,但我在您链接的文档中没有看到任何对 num_filter 的引用,尽管有些类似乎采用 num_filters - 注意后面的 s - 参数。)

关于python - 千层面.layers.DenseLayer : "__init__() takes at least 3 arguments",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39774325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com