Я пишу код тензорного потока с сообщением об ошибке:
Установка элемента массива с последовательностью.
Ошибка в строке cluster_std[cluster_i] = cluster_std[cluster_i]+t_err
. Я предполагаю, что проблема в t_err
, который, я думаю, является операцией тензорного потока; как я могу решить проблему? Спасибо!
def loss_kmeans_reconst(cluster_ass, out):
cluster_mean = tf.unsorted_segment_mean(out, np.arange(nb_realizations), nb_realizations)
# if you do not know unsorted_segment_mean, you can think cluster_mean as a tensor which has same shape
# as out
cluster_std = np.zeros((nb_centroids))
for i in range(0,nb_realizations):
cluster_i = cluster_ass[i]
t_err = tf.reduce_sum(tf.square(out[i,:]-cluster_mean[cluster_i,:]))
cluster_std[cluster_i] = cluster_std[cluster_i]+t_err
return np.mean(cluster_std)
test_out = tf.ones([nb_realizations,121],tf.float64)
test_return = loss_kmeans_reconst(np.arange(nb_realizations), test_out)
print(test_return.shape)