[英]__init__() got multiple values for argument 'padding'
def get_model(summary=False, backend='tf'):
""" Return the Keras model of the network
"""
model = Sequential()
if backend == 'tf':
input_shape=(256, 80, 60, 1) # l, h, w, c
else:
input_shape=(1, 256, 80, 60) # c, l, h, w
model.add(Convolution3D(64, 3, 3, 3, activation='relu',
padding='same', name='conv1',
input_shape=input_shape))
model.add(MaxPooling3D(pool_size=(1, 2, 2), strides=(1, 2, 2),
padding='valid', name='pool1'))
# 2nd layer group
model.add(Convolution3D(128, 3, 3, 3, activation='relu',
padding='same', name='conv2'))
model.add(MaxPooling3D(pool_size=(2, 2, 2), strides=(2, 2, 2),
padding='valid', name='pool2'))
+ other layers as well
if __name__ == '__main__':
model = get_model(summary=True,backend='tf')
我正在嘗試實現 c3d model 進行視頻分類。
輸入尺寸 = 256 X 80 X 60 X 1
該錯誤顯示在主 function 中。
我正在嘗試使用 C3D model 進行視頻分類。 256 幀,80 H,60 W,1 通道(灰度)但遇到這種填充問題(之前使用 tf = 1.14.0,現在 tf = 2.2.0 工作正常)
這是 function 簽名:
tf.keras.layers.Conv3D(
filters, kernel_size, strides=(1, 1, 1), padding='valid',
data_format=None, dilation_rate=(1, 1, 1), groups=1, activation=None,
use_bias=True, kernel_initializer='glorot_uniform',
bias_initializer='zeros', kernel_regularizer=None,
bias_regularizer=None, activity_regularizer=None, kernel_constraint=None,
bias_constraint=None, **kwargs
)
它需要2 個位置 arguments 。
第一個是過濾器,它是integer (64)
第二個是kernel_size
,它是integer或3 個整數的元組。
因為您的輸入不是(3, 3, 3)
元組,所以它需要kernel_size=3
然后將3, 3
的 rest 分配給鍵控 arguments ,它們是strides
和padding
,但隨后它看到另一個padding=
分配,因此它出錯。
底線,請致電:
model.add(Convolution3D(64, (3, 3, 3), activation='relu',
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.