python - 在拟合模型期间获取 keras ValueError(损失和损失关键字问题)
问题描述
num_classes=10
(d_tr,l_tr),(d_val,l_val) = mnist.load_data()
l_tr = to_categorical(l_tr,num_classes)
l_val = to_categorical(l_val,num_classes)
d_tr = np.reshape(d_tr,(len(d_tr),28,28,1))
d_val = np.reshape(d_val,(len(d_val),28,28,1))
#d_tr = np.reshape(d_tr,(len(d_tr),784))
#d_val = np.reshape(d_val,(len(d_val),784))
print(l_tr.shape)
print(l_val.shape)
print(d_tr.shape)
print(d_val.shape)
m_0 = Input(shape=(28,28,1,))
m = Conv2D(25,(3,3),input_shape=(28,28,1),padding="same")(m_0)
m = Dropout(.3)(m)
m = Conv2D(40,(3,3),strides=2,padding="same")(m)
m = Dropout(.4)(m)
m = Conv2D(60,(3,3),kernel_regularizer=l2(.025),padding="same")(m)
m = Dropout(.4)(m)
m = Conv2D(60,(3,3),kernel_regularizer=l2(.025),strides=2,padding="same")(m)
m = BatchNormalization()(m)
m = Flatten()(m)
m = Dropout(.45)(m)
out = Dense(num_classes,activation="softmax")(m)
model = Model(inputs=m_0,outputs=out)
model.summary()
model.compile("adam",metrics=["accuracy"],losses="categorical_crossentropy")
model.fit(x=d_tr,y=l_tr,epochs=20,batch_size=64,validation_data=(d_val,l_val),callbacks=[CSVLogger('log_mnist.csv')])
我正在尝试使用功能 API(上面附加的代码)为 MNIST 制作一个简单的模型。我试图弄清楚我做错了什么,但我找不到任何方法来解决以下错误:
ValueError: ('Error when checking model target: expected no data, but got:', array([[0., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
...,
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 1., 0.]], dtype=float32))
编辑:事实证明,当您将 model.compile 中的“losses”关键字转换为“loss”时,问题可以得到解决。但是,如果不是关键字,为什么解释器会接受损失,我仍然不知道。如果您有任何相关信息,请回答。
解决方案
推荐阅读
- flutter - Flutter 在关注 TextField 时会重建之前的路由
- powershell - 合并文件任务 AzureDevops
- angular - i18n 只翻译一行标签
- javascript - NextJS 9 / 阿波罗路由
- vue.js - 如何利用本地组件的数据对象绑定到外部组件
- r - R中的多个数据帧并行功能
- ios - iOS画外音,如何跳过表格视图单元格而不是说“未启用”
- enums - 避免在“枚举”中重复变体名称和类型
- java - java - 如何在Java spring-boot JPA中保存/发布来自JSON键值对的值数组
- javascript - Number.IsNaN 并且没有正确分类变量*数字?