图表明我正使用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数组类型,但是错误消息指出了其他情况
答案 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)
请注意我们如何使用关键字参数来指示批处理大小和纪元数。