使用预先填充的pd数据框创建Tensor?

时间:2016-12-15 12:32:05

标签: python numpy machine-learning tensorflow recommendation-engine

我正在尝试创建基于项目项的协同过滤推荐引擎。由于大量数据流过,我不得不使用TensorFlow。然而,即使花了数小时在文档和互联网上,我也无法弄清楚如何使用预先填充的ndarray创建张量。

我正在尝试使用用户项操作转置ndarray以在张量中记录信息。我调试了多个错误,包括形状不匹配,只是为了找到一个新的错误我无法找到任何信息。下面是代码。任何帮助/建议都非常感谢。

user_item_matrix = tf.Variable(np.zeros(shape = (num_usr,num_prd)),dtype=tf.int32)
init_op = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init_op)
for index,row in user_item_action.iterrows():
    update_row = usr_ht[row['user_id']]
    update_col = prd_ht[row['product_id']]
# Updating row slices of the tensor
update = [0]*num_prd
update[update_col] = row['action_score']
user_item_matrix = sess.run(tf.scatter_add(user_item_matrix,update_row,np.transpose(update)))
sess.close()

TypeError:'ScatterAdd'Op的输入'ref'需要l值输入

user_item_action.head():         user_id product_id action_score 1354 76864 196823 10 2626 23364 234437 10 6422 8055 231014 10 9877 81965 200476 10 13334 88132 240015 10

1 个答案:

答案 0 :(得分:0)

请勿将sess.run的结果分配给user_item_matrixsess.run会返回已更改变量的,如果您为user_item_matrix指定一个常规值,它将不再是TF变量,您将无法使用再分配它。