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.
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.
最后,如果我不使用tf.nn.relu,
m_2 = alpha*m
我的代码运行良好。
有人能帮我理解发生了什么事,我怎样才能让它工作?