![](/img/trans.png)
[英]TypeError: __init__() got multiple values for argument 'n_splits'
[英]TypeError: __init__() got multiple values for argument 'strides'
Nvidia 模型顯示 strides 錯誤,即使我將它們初始化為 (1,1) 的默認值我使用 'strides' 作為先前版本 keras 中的 'subsample' 參數的替代有人可以解釋新語法使用它們。
def nvidia_model():
model = Sequential()
model.add(Conv2D(24,5,5, strides = (2,2), input_shape= (66,200,3), activation='relu'))
model.add(Conv2D(36,5,5, strides = (2,2), activation = 'relu'))
model.add(Conv2D(48,5,5, strides = (2,2), activation = 'relu'))
model.add(Conv2D(64,3,3, activation = 'relu'))
model.add(Conv2D(64,3,3, activation = 'relu'))
model.add(Dropout(0.5)) #50% nodes turned to zero
model.add( Flatten())
model.add(Dense(100, activation ='relu'))
model.add(Dropout(0.5))
model.add(Dense(50, activation ='relu'))
model.add(Dense(10, activation ='relu'))
model.add(Dense(1))
optimizer = Adam(lr = 1e-3)
model.compile(loss = 'mse' , optimizer = optimizer)
return model
model = nvidia_model()
print(model.summary)
Error:
TypeError Traceback (most recent call last)
<ipython-input-83-aff2a2709b79> in <module>()
----> 1 model = nvidia_model()
2 print(model.summary)
<ipython-input-82-7942ade664af> in nvidia_model()
1 def nvidia_model():
2 model = Sequential()
----> 3 model.add(Conv2D(24,5,5, strides = (2,2), input_shape= (66,200,3), activation='relu'))
4 model.add(Conv2D(36,5,5, strides = (2,2), activation = 'relu'))
5 model.add(Conv2D(48,5,5, strides = (2,2), activation = 'relu'))
TypeError: __init__() got multiple values for argument 'strides'
我從未使用過tensorflow
,但根據Conv2D
的文檔,它被定義為
tf.keras.layers.Conv2D(
filters, kernel_size, strides=(1, 1), padding='valid', data_format=None,
dilation_rate=(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
)
如您所見, strides
是第三個參數。
現在您使用Conv2D(24,5,5, strides = (2,2), input_shape= (66,200,3), activation='relu')
,其中第三個參數為5
,然后您嘗試再次使用關鍵字設置strides
范圍。 您的通話中似乎有一個參數過多。
想象一下處理你的代碼的小 Python gnome:“好吧,老板想要一個Conv2D
的實例。他將第一個參數filters
為4
,第二個參數kernel_size
為2
,第三個參數strides
為2
。完成位置參數。現在讓我們繼續關鍵字參數。這里我們有strides
和...哦,我已經有了strides
,所以我不知道該怎么辦。老板可能生氣了,所以我會告訴他到底發生了什么: TypeError: __init__() got multiple values for argument 'strides'
“
model.add(Conv2D(24,5,5, strides = (2,2), input_shape= (66,200,3), activation='relu'))
model.add(Conv2D(36,5,5, strides = (2,2), activation = 'relu'))
model.add(Conv2D(48,5,5, strides = (2,2), activation = 'relu'))
對於這些行,請使用括號,如下例所示
model.add(Conv2D(24,(5,5), strides = (2,2), input_shape= (66,200,3), activation='relu'))
model.add(Conv2D(36,(5,5), strides = (2,2), activation = 'relu'))
model.add(Conv2D(48,(5,5), strides = (2,2), activation = 'relu'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.