我正在尝试使用稀疏的numpy矩阵在tensorflow作为后端的keras中。模型编译时没有问题,但是在拟合时却出现了错误。代码如下。任何帮助都将不胜感激。
from keras.layers import Dense, Input
from keras.models import Model
inputs = Input(shape=(trainX.shape[1],), sparse=True)
outputs = Dense(trainY.shape[1], activation='softmax')(inputs)
model = Model(inputs=inputs, outputs=outputs)
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
trainX是
<2404941x337071 sparse matrix of type '<type 'numpy.float64'>'
with 4765705 stored elements in Compressed Sparse Row format>
同样地,trainY是一个CSR矩阵。
model.fit(trainX, trainY, verbose=1)
出现以下错误:
ValueError: setting an array element with a sequence.
fit
)没有说明参数可以是稀疏矩阵,则不行。通常,如果输入不是数组,则代码会将其包装在np.asarray(trainX)
中。如果输入是稀疏的,则结果是一个元素为1的对象数组,这不是您想要的。 - hpaulj