#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'
Conv2D
的调用签名很长,但以Conv2d(filter, kernel_size, ...)
开头。您使用两个位置参数填充filter
和kernel_size
来调用它,然后尝试设置kernel_size=3
。由于kernel_size
已被位置参数填充,因此出现了错误内核大小应该是两个元素的元组。你可能是故意的
另外,
self.conv1_1
将是一个1元素元组,这可能是您想要的。否则,请删除该结尾逗号相关问题 更多 >
编程相关推荐