Tensorflow InvalidArgumentError(参见上面的回溯):flat indices不会索引到param中

时间:2017-11-21 13:00:41

标签: python-3.x tensorflow sparse-matrix

我使用tensorflow来使用协同过滤算法构建推荐系统。

由于内存使用,我必须使用稀疏矩阵。

#Arbitrary number of items are rated by arbitrary number of users
ratings = tf.sparse_placeholder(tf.float32, shape=[None, None])
ratings = tf.sparse_reorder(ratings)

使用我的feed_dict, ratings.dense_shape == (45776, 60184)

pred = tf.matmul(items_features, user_preferences, name='Prediction') + global_mean

我已经硬编码pred.shape == (45776, 60184)

那么当我尝试收集预测以便以后计算成本时会怎样呢

pred_values = tf.gather_nd(pred, ratings.indices)

我收到错误
    InvalidArgumentError(参见上面的回溯):flat indices [2714679,:] = [48375,2227]不会索引到param(形状:[45776,60184])。

1 个答案:

答案 0 :(得分:0)

事实证明我确实搞乱了尺寸。我按照与我想的相反的顺序输入索引,即形状(60184,45776)而不是需要(45776,60184)

错误地告诉我的flat indices[2714679, :]正在编制索引[48375, 2227] - 没有出现的形状 - 没有帮助。