Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tf.sparse.reformate(tf.sparse.split()):类型错误:输入必须是SparseTensor_Python_Tensorflow_Tensorflow2.0 - Fatal编程技术网

Python tf.sparse.reformate(tf.sparse.split()):类型错误:输入必须是SparseTensor

Python tf.sparse.reformate(tf.sparse.split()):类型错误:输入必须是SparseTensor,python,tensorflow,tensorflow2.0,Python,Tensorflow,Tensorflow2.0,我试图在张量流上将稠密矩阵转换为稀疏矩阵计算。在使用tf.sparse.split()后尝试重塑时出错。下面是一个玩具示例来演示此问题 张量流密集矩阵 import numpy as np import tensorflow as tf a = np.array([[1, 0, 2, 0,0,1], [3, 0, 0, 4,1,0]]) a_t = tf.constant(a) a_t_rshp = tf.reshape(tf.split(a_t,2,axis = 1),[2,2,3]) a

我试图在张量流上将稠密矩阵转换为稀疏矩阵计算。在使用
tf.sparse.split(
)后尝试
重塑
时出错。下面是一个玩具示例来演示此问题

张量流密集矩阵

import numpy as np
import tensorflow as tf
a = np.array([[1, 0, 2, 0,0,1], [3, 0, 0, 4,1,0]])

a_t = tf.constant(a)
a_t_rshp = tf.reshape(tf.split(a_t,2,axis = 1),[2,2,3])
a_t_st = tf.sparse.from_dense(a_t)
a_t_st_rshp = tf.sparse.reshape(tf.sparse.split(a_t_st,2,axis = 1),[2,2,3])

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-3dff37aef5b4> in <module>
----> 1 a_t_st_rshp = tf.sparse.reshape(tf.sparse.split(a_t_st,2,axis = 1),[2,2,3])

/Users/Mine/Python/tf2_4_env/lib/python3.6/site-packages/tensorflow/python/ops/sparse_ops.py in sparse_reshape(sp_input, shape, name)
    886     ValueError:  If `shape` has more than one inferred (== -1) dimension.
    887   """
--> 888   sp_input = _convert_to_sparse_tensor(sp_input)
    889   shape = math_ops.cast(shape, dtype=dtypes.int64)
    890 

/Users/Mine/Python/tf2_4_env/lib/python3.6/site-packages/tensorflow/python/ops/sparse_ops.py in _convert_to_sparse_tensor(sp_input)
     70     return sparse_tensor.SparseTensor.from_value(sp_input)
     71   if not isinstance(sp_input, sparse_tensor.SparseTensor):
---> 72     raise TypeError("Input must be a SparseTensor.")
     73   return sp_input
     74 
张量流稀疏矩阵

import numpy as np
import tensorflow as tf
a = np.array([[1, 0, 2, 0,0,1], [3, 0, 0, 4,1,0]])

a_t = tf.constant(a)
a_t_rshp = tf.reshape(tf.split(a_t,2,axis = 1),[2,2,3])
a_t_st = tf.sparse.from_dense(a_t)
a_t_st_rshp = tf.sparse.reshape(tf.sparse.split(a_t_st,2,axis = 1),[2,2,3])

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-3dff37aef5b4> in <module>
----> 1 a_t_st_rshp = tf.sparse.reshape(tf.sparse.split(a_t_st,2,axis = 1),[2,2,3])

/Users/Mine/Python/tf2_4_env/lib/python3.6/site-packages/tensorflow/python/ops/sparse_ops.py in sparse_reshape(sp_input, shape, name)
    886     ValueError:  If `shape` has more than one inferred (== -1) dimension.
    887   """
--> 888   sp_input = _convert_to_sparse_tensor(sp_input)
    889   shape = math_ops.cast(shape, dtype=dtypes.int64)
    890 

/Users/Mine/Python/tf2_4_env/lib/python3.6/site-packages/tensorflow/python/ops/sparse_ops.py in _convert_to_sparse_tensor(sp_input)
     70     return sparse_tensor.SparseTensor.from_value(sp_input)
     71   if not isinstance(sp_input, sparse_tensor.SparseTensor):
---> 72     raise TypeError("Input must be a SparseTensor.")
     73   return sp_input
     74 
a_t_st=tf.sparse.from_dense(a_t)
a_t_st_rshp=tf.sparse.reforme(tf.sparse.split(a_t_st,2,axis=1),[2,2,3])
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
---->1 a_t_st_rshp=tf.sparse.reformate(tf.sparse.split(a_t_st,2,axis=1),[2,2,3])
/稀疏整形中的Users/Mine/Python/tf2_4_env/lib/python3.6/site-packages/tensorflow/Python/ops/sparse_ops.py(sp_输入、形状、名称)
886 ValueError:如果“shape”有多个推断的(=-1)维度。
887   """
-->888 sp\u输入=\u转换\u到\u稀疏\u张量(sp\u输入)
889 shape=math_ops.cast(shape,dtype=dtypes.int64)
890
/Users/Mine/Python/tf2_4_env/lib/python3.6/site-packages/tensorflow/Python/ops/sparse_ops.py in_convert_to_sparse_tensor(sp_输入)
70从_值(sp_输入)返回稀疏_张量稀疏传感器
71如果不存在(sp_输入、稀疏张量、稀疏传感器):
--->72 raise TYPE ERROR(“输入必须是SparseTensor。”)
73返回sp_输入
74

你能帮我解决这个问题吗?

我对你的代码没有任何问题。我正在运行python 3.7和tf 2.4,你使用的是什么版本?@CrazyBrazilian你试过运行
a_t_st=tf.sparse.from_dense(a_t)a_st_rshp=tf.sparse.reformate(tf.sparse.split(a_t_st,2,axis=1),[2,2,3])
?版本:Python 3.6.4和TensorFlow 2.4.0这似乎是TensorFlow中的错误,您能在TensorFlow github报告中提出这个问题吗?谢谢!