Я запускаю тренировочный цикл для набора точек данных, скажем, 1,2,3 и 4. В каждой точке я запускаю тренировочный цикл для 20000 тренировочных шагов. Для каждой точки данных я получаю другую матрицу W (полностью подключена).
`W_fc = weight_variable([input_dim, 2])
logits = tf.matmul(pool_2D, W_fc)`
Моя цель состоит в том, чтобы построить график между набором точек данных на оси x и W-матрицей на оси y, но это требует некоторого преобразования. Учитывая одну точку данных
и соответствующая ей W-матрица. Я должен умножить весовую матрицу на один горячий вектор, который был назначен в точке данных 1. В каждой отдельной точке данных каждая W-матрица имеет размерность (40,2), а один горячий вектор должен иметь размерность (2 1) для умножения матриц. Итак, как я могу получить один горячий вектор, соответствующий определенной точке данных?
`for hc in h_array:
sess.run(tf.initialize_all_variables())
data_sets = input_rfhm.read_data_sets("Input", str(hc), one_hot=True)
for i in range(FLAGS.training_step):
batch = data_sets.train.next_batch(FLAGS.batch_size)
optimizer.run(feed_dict = {x: batch[0], y_: batch[1]})
if(i%100 ==0):
train_accuracy = accuracy.eval(feed_dict= {x: batch[0], y_: batch[1]})
test_accuracy = accuracy.eval(feed_dict= {x: data_sets.test.MC_Samples, y_: data_sets.test.labels})
loss_value = loss.eval(feed_dict= {x: batch[0], y_: batch[1]})`