初始化
2.0以上版本把代码改为:
optimizer = tf.compat.v1.train.AdamOptimizer(1e-4)
train = optimizer.minimize(loss)
版本问题
在2.x 版本中应为 tf.random.normal
# 我改成了这样可以运行 for i in range(m): #获取一部电影评分用户的id ids = np.nonzero(record[i])[0] #ids = record[i,:] != 0 rating_mean[i] = np.mean(rating[i,ids]) #rating_norm[i,ids] -= rating_mean[i] rating_norm[i,ids] = rating[i,ids] - rating_mean[i] print("The row is {},mean rating is {},rating user size is {}" .format(i,rating_mean[i],ids.shape))
原始条件只需要用户评分表这一张表就好了。用户喜好矩阵和电影内容矩阵都是要求解的对象。
movies_mean = np.sum(rating, axis=1) / np.sum(rating!=0, axis=1)
rating -= movies_mean.reshape(-1, 1)
兄弟们,报错的是
rating_mean[i] = np.mean(rating[i, idx])
这一行代码的np.mean(rating[i, idx]) 部分,索引报错。不是下一行的公式问题