Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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 Tensorflow-无法将浮点变量添加到稀疏占位符矩阵_Python_Tensorflow_Deep Learning - Fatal编程技术网

Python Tensorflow-无法将浮点变量添加到稀疏占位符矩阵

Python Tensorflow-无法将浮点变量添加到稀疏占位符矩阵,python,tensorflow,deep-learning,Python,Tensorflow,Deep Learning,我试图在tensorflow中的矩阵上实现一个简单的函数。矩阵是通过占位符输入的,是稀疏张量。我想用一个可学习的浮点变量(比如alpha)乘以矩阵的每个元素,并在其中添加一个可学习的偏差项(比如beta)。我添加了一个激活函数,比如relu/tanh m_2 = relu(alpha*m + beta) 我正试图实现以下目标: alpha = tf.get_variable("alpha", shape=[1,], dtype=tf.float32, initialize

我试图在tensorflow中的矩阵上实现一个简单的函数。矩阵是通过占位符输入的,是稀疏张量。我想用一个可学习的浮点变量(比如alpha)乘以矩阵的每个元素,并在其中添加一个可学习的偏差项(比如beta)。我添加了一个激活函数,比如relu/tanh

m_2 = relu(alpha*m + beta)
我正试图实现以下目标:

alpha = tf.get_variable("alpha", shape=[1,], dtype=tf.float32,  initializer = 
                                     tf.contrib.layers.xavier_initializer())
beta = tf.get_variable("beta", shape=[1, ], dtype=tf.float32,
                                    initializer = tf.contrib.layers.xavier_initializer())

m_2 = tf.nn.relu(alpha * m + beta)
但我得到了以下错误:

TypeError: Expected float32, got <tensorflow.python.framework.sparse_tensor.SparseTensor object at 0x0000026A771AE358> of type 'SparseTensor' instead.
TypeError:应为float32,而应为'SparseTensor'类型。
有趣的是,当我删除beta的添加,即当我将M'更改为以下值时,错误会发生变化:

m_2 = tf.nn.relu(alpha * m)



TypeError: Failed to convert object of type <class 'tensorflow.python.framework.sparse_tensor.SparseTensor'> to Tensor. Contents: SparseTensor(indices=Tensor("Placeholder_2:0", shape=(?, ?), dtype=int64), values=Tensor("mul_1:0", shape=(?,), dtype=float32), dense_shape=Tensor("Placeholder:0", shape=(?,), dtype=int64)). Consider casting elements to a supported type.
m_2=tf.nn.relu(alpha*m)
TypeError:无法将类型的对象转换为Tensor。内容:SparseTensor(索引=张量(“占位符_2:0”,形状=(?,?),数据类型=int64),值=张量(“mul_1:0”,形状=(?,),数据类型=float32),密集_形状=张量(“占位符:0”,形状=(?,),数据类型=int64))。将铸造元素考虑为支持类型。
最后,如果我不应用tf.nn.relu,
m2=alpha*m
我的代码工作正常

有人能帮助我了解正在发生的事情,以及我如何使它工作吗