InvalidArgumentError: indices[1] = [0,1247] is out of order. Many sparse ops require sorted indices.

文章目录

问题

用稀疏矩阵作为model的输入,提示错误:

InvalidArgumentError: indices[1] = [0,1247] is out of order. Many sparse ops require sorted indices.
    Use `tf.sparse.reorder` to create a correctly ordered copy.

原因

稀疏矩阵的索引无序,如下所示:

SparseTensor(indices=tf.Tensor(
[[   0 1274]
 [   0 1247]
 [   0 1194]
 ...
 [2707  329]
 [2707  186]
 [2707   19]], shape=(49216, 2), dtype=int64), values=tf.Tensor([0.11111111 0.11111111 0.11111111 ... 0.07692308 0.07692308 0.07692308], shape=(49216,), dtype=float32), dense_shape=tf.Tensor([2708 1433], shape=(2,), dtype=int64))

解决

将稀疏矩阵的索引变有序:

features_s = tf.sparse.reorder(features_s)
print(features_s)
SparseTensor(indices=tf.Tensor(
[[   0   19]
 [   0   81]
 [   0  146]
 ...
 [2707 1328]
 [2707 1412]
 [2707 1414]], shape=(49216, 2), dtype=int64), values=tf.Tensor([0.11111111 0.11111111 0.11111111 ... 0.07692308 0.07692308 0.07692308], shape=(49216,), dtype=float32), dense_shape=tf.Tensor([2708 1433], shape=(2,), dtype=int64))
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值