Sudoku模型Keras无效参数错误

时间:2020-09-23 14:23:19

标签: keras conv-neural-network tensorflow2.0 sudoku

我对深度学习非常陌生,并试图从Kaggle内核中汲取灵感来构建CNN模型以解决数独问题。作为参考,可以找到here的内核。

这是我建立的顺序模型-

    model = Sequential([
    Conv2D(filters = 64, kernel_size = (3,3), activation = 'relu', padding = 'same', 
    input_shape = (9,9,1)),
    
    BatchNormalization(),
    Conv2D(filters = 64, kernel_size = (3,3), activation = 'relu', padding = 'same'),
    BatchNormalization(),
    Conv2D(filters = 128, kernel_size = (1,1), activation = 'relu', padding = 'same'),    
    Flatten(),
    Dense(81*9),
    Reshape((-1,9)),
    Activation('softmax')
    ])

    model.compile(optimizer = Adam(lr = 0.0001), loss = 'sparse_categorical_crossentropy', metrics = ['accuracy'])

    X = np.array(unsolved).reshape(2000,9,9,1) # features
    y = np.array(solved) # labels
y是形状的数组(2000,81)。培训示例的数量是2000。

model.fit(x = X, y = y, validation_split = 0.2, verbose = 1, batch_size = 1000, epochs = 20)

在训练模型时,出现无效参数错误。

InvalidArgumentError:  Received a label value of 9 which is outside the valid range of [0, 9).

我发现标签9超出范围,如果我将解决方案数独中的所有数字都重新标记为(1,9)到(0,8),则该模型可能会起作用。

但我认为这不是有效的解决方案。请让我知道如何通过此方法工作。谢谢!

0 个答案:

没有答案