KERAS AttributeError:类型对象'Model'在.fit()上没有属性'ndim'

时间:2019-07-16 15:44:36

标签: python keras

图表明我正使用Keras编写UNet实现,但是.fit()行抛出了错误

我真的不知道是什么导致了这个问题。我要传入两个numpy数组列表

这是代码的相关部分

inp = Input((1,128,128,128))

... 10个转换层

out = Model(inputs=[inp], outputs=[conv10])

out.fit(Model,
       X_train, 
       y_train,
       None,
       1,
       1)

最后一行是抛出错误的那一行

x_train和y_train都是列表

我试图用类似的东西代替它们

testx=np.load(ListOfFilePathsToXNpyArrays[0])
testy=np.load(ListOfFilePathsToYNpyArrays[0])

out.fit(Model,
       testx, 
       testy,
       None,
       1,
       1)

但是它仍然会引发相同的错误

感谢您的帮助

编辑:

如果我将X_train和y_train替换为单独的numpy数组(x和y),则会引发错误: AttributeError:“ str”对象没有属性“ ndim”

但是,对它们两个都运行type()会返回: 类“ numpy.ndarray”

这让我感到困惑,因为它们看起来像是numpy数组类型,但是错误消息指出了其他情况

1 个答案:

答案 0 :(得分:0)

这是错误的:

out.fit(Model, x_train, y_train, None, 1, 1)

不确定为什么要传递Model作为第一个参数,它是类的名称,fit的前两个参数是训练集X和y,而不是Model 。正确的呼叫应该是:

out.fit(x_train, y_train, batch_size=1, epochs=1)

请注意我们如何使用关键字参数来指示批处理大小和纪元数。