Я хочу передать свои разреженные данные в Tensorflow партиями, поэтому я использую этот код:
with graph.as_default():
global_step = tf.Variable(0, trainable=False)
# Here we use the indices and values to reproduce the input SparseTensor
sp_indice = tf.placeholder(tf.int64)
sp_value = tf.placeholder(tf.float32)
x = tf.SparseTensor(sp_indice, sp_value, [batch_size, feature_num])
y_ = tf.placeholder(tf.float32, [None, 1])
keep_prob = tf.placeholder("float32")
W = tf.Variable(tf.zeros([feature_num, 1]))
b = tf.Variable(tf.zeros([1]))
# Construct model
pred = tf.nn.softmax(tf.matmul(x, W) + b) # Softmax
# Minimize error using cross entropy
cost = tf.reduce_mean(-tf.reduce_sum(y*tf.log(pred), reduction_indices=1))
Но я получил ошибку:
TypeError: Failed to convert object of type <class 'tensorflow.python.framework.sparse_tensor.SparseTensor'> to Tensor. Contents: SparseTensor(indices=Tensor("Placeholder:0", dtype=int64), values=Tensor("Placeholder_1:0", dtype=float32), dense_shape=Tensor("SparseTensor/dense_shape:0", shape=(2,), dtype=int64)). Consider casting elements to a supported type.
Я запутался в этой ошибке, похоже, что мой sp_indice = tf.placeholder(tf.int64)
был не прав, возможно, потому что я не дал shape
. Но я не могу убедиться, что форма, так как форма отличается в каждой партии. Как я могу доставить индексный массив и массив значений в тензор?