簡體   English   中英

SyntaxError:位置參數遵循 CNN model 中的關鍵字參數

[英]SyntaxError: positional argument follows keyword argument in CNN model

我正在嘗試制作 CNN model,但出現以下錯誤

keras.layers.MaxPooling2D(pool_size = (2,2), padding= "same"),
    ^
SyntaxError: positional argument follows keyword argument

當我想添加輟學或最大池時,該錯誤適用,我將在下面添加我的代碼並注釋給我提到的語法錯誤的行。

當我嘗試運行 dropout 並注釋掉 maxpooling 時,我會遇到不同的錯誤,反之亦然。

注意:我正在使用來自以下紀錄片( https://keras-team.github.io/keras-tuner/ )的 kerastuner 的 hp.Choice 和 hp.Int 工作正常我很確定錯誤不是因為濫用它。

  model = keras.Sequential([
    keras.layers.Conv2D(
        keras.layers.BatchNormalization(),
        input_shape = (img_rows, img_cols, 1),
        kernel_size = hp.Choice("conv1_kernel", values = [3, 6]),
        filters = hp.Int("conv1_filters", min_value = 32, max_value = 128, step = 16),
        #keras.layers.MaxPooling2D(pool_size = (2,2), padding= "same"),
        #keras.layers.Dropout(0.2),
        activation = "relu"
    ),

    keras.layers.Conv2D(
        keras.layers.BatchNormalization(),
        input_shape = (img_rows, img_cols, 1),
        kernel_size = hp.Choice("conv2_kernel", values = [3, 6]),
        filters = hp.Int("conv2_filters", min_value = 32, max_value = 64, step = 16),
        #keras.layers.MaxPooling2D(pool_size = (2,2), padding = "same"),
        #keras.layers.Dropout(0.5),
        activation = "relu"
    ), 
    

    keras.layers.Flatten(),
    keras.layers.Dense(
        units = hp.Int("dense1_units", min_value = 16, max_value = 256, step = 16),
        activation = "relu"

    ),
    
    keras.layers.Dense(units = 7, activation = "softmax")

  ])

  model.compile(optimizer=keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-1, 1e-2, 1e-3])),
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
  
  return model```

keras.layers.MaxPooling2D(pool_size = (2,2), padding= "same"),
keras.layers.Dropout(0.2),

是與keras.layers.Conv2D相同的實體:它們是層,應該以相同的方式添加到 model 架構:

keras.layers.Conv2D(
        input_shape = (img_rows, img_cols, 1),
        kernel_size = hp.Choice("conv1_kernel", values = [3, 6]),
        filters = hp.Int("conv1_filters", min_value = 32, max_value = 128, step = 16),
        activation = "relu"
    ),

keras.layers.BatchNormalization(),
keras.layers.MaxPooling2D(pool_size = (2,2), padding= "same"),
keras.layers.Dropout(0.2),

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM