我有一个带有多个自定义图层的keras模型。我跑的时候:
model_.compile(optimizer=rms, loss=contrastive_loss,metrics=['accuracy'])
它编译没有任何问题。 但是当我尝试使用数组列表来拟合模型时:
X = [T1,R1] + [T2, R2]
model_.fit(X, [None]*2, epochs=50, batch_size=32)
我收到错误。 它似乎是由engine \ training.pyc引起的,因为它打印出来:
C:\Tools\Anaconda2\lib\site-packages\keras\engine\training.pyc in _standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix)
124 for i in range(len(names)):
125 array = arrays[i]
126 if len(array.shape) == 1:
127 array = np.expand_dims(array, 1)
128 arrays[i] = array
AttributeError: 'NoneType' object has no attribute 'shape'
也许有人可以帮忙吗?我正在使用keras 2.1.2和theano 0.9.0
编辑:
我试过了:
model_.fit(X, [np.asarray([None])]*2, epochs=50, batch_size=32, verbose=5)
而现在我收到以下错误:
ValueError: All input arrays (x) should have the same number of samples. Got array shapes:
然后它打印输入数组的形状。
任何想法?
答案 0 :(得分:0)
我认为它会返回错误,因为Keras正在检查输入的形状。但是,列表(您正在喂食的内容)没有形状属性。尝试将它们作为数组传递:
import numpy as np
model_.fit(np.asarray(X), np.asarray([None]*2), epochs=50, batch_size=32)