TypeError:\uuuu init\uuuuuuuu()为参数“kernel\u size”获取了多个值。在tensorflow 2.0中发生错误

2024-04-20 07:25:32 发布

您现在位置:Python中文网/ 问答频道 /正文

#vgg16
class  VGGBase(Model):
    def __init__(self):
        super(VGGBase,self).__init__()
        self.conv1_1 = tf.keras.layers.Conv2D(3,64, kernel_size=3,padding=1,strides=1),
        self.conv1_2 = tf.keras.layers.Conv2D(64,64, kernel_size=3, padding=1,strides=1),
        self.pool1 = tf.keras.layers.MaxPool2D(2,2),

        self.conv2_1  =  tf.keras.layers.Conv2D(64,128, kernel_size=3, padding=1,strides= 1),
        self.conv2_2 = tf.keras.layers.Conv2D(128,128, kernel_size=3,padding=1,strides= 1),
        self.pool2 = tf.keras.layers.MaxPool2D(2,2),
 def call(self,x):
        x = relu(self.conv1_1(x))
        x = relu(self.conv1_2(x))
        x = relu(self.pool1(x))

        x = relu(self.conv2_1(x))
        x = relu(self.conv2_2(x))
        x = relu(self.pool2(x))

这是tensrflow 2.0,得到的错误是 参数“内核大小”的多个值

File "/home/jake/Gits/ssd_tensorflow/model.py", line 10, in init self.conv1_1 = tf.keras.layers.Conv2D(3,64, kernel_size=3,padding=1,strides=1,input_shape=input_shape), TypeError: init() got multiple values for argument 'kernel_size'


Tags: selfsizeinitlayerstfdefkernelkeras
1条回答
网友
1楼 · 发布于 2024-04-20 07:25:32

Conv2D的调用签名很长,但以Conv2d(filter, kernel_size, ...)开头。您使用两个位置参数填充filterkernel_size来调用它,然后尝试设置kernel_size=3。由于kernel_size已被位置参数填充,因此出现了错误

内核大小应该是两个元素的元组。你可能是故意的

self.conv1_1 = tf.keras.layers.Conv2D(64, kernel_size=(3,3), padding=1, strides=1),

另外,self.conv1_1将是一个1元素元组,这可能是您想要的。否则,请删除该结尾逗号

相关问题 更多 >