我正在尝试将稀疏numpy矩阵用于具有张量流作为后端的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.
答案 0 :(得分:0)
如果编写自定义训练循环,则可以将稀疏矩阵用作Keras模型的输入。 在下面的示例中,该模型以稀疏矩阵作为输入,并输出一个密集矩阵。
RData
从您的示例来看,您似乎也希望输出也是一个稀疏矩阵。这更加困难,因为您的模型需要输出稀疏矩阵,并且损失必须可以用稀疏矩阵计算。而且,我相信Keras尚不支持稀疏输出。