Проекторная визуализация Tensorboard без визуализации необходимых переменных - PullRequest
0 голосов
/ 06 декабря 2018

Я попробовал следующий пример.Я пытаюсь визуализировать данные через Tensorboard.Я хотел использовать проектор.Но я получаю что-то еще на проекторе визуализированный.Посмотрите на пример и вывод:

tf.reset_default_graph()

X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])
y = tf.placeholder(tf.float32, [None,n_outputs])

layers = [tf.contrib.rnn.LSTMCell(num_units=n_neurons, 
                                 activation=tf.nn.leaky_relu, use_peepholes = True)
         for layer in range(n_layers)]
multi_layer_cell = tf.contrib.rnn.MultiRNNCell(layers)
rnn_outputs, states = tf.nn.dynamic_rnn(multi_layer_cell, X, dtype=tf.float32)
stacked_rnn_outputs = tf.reshape(rnn_outputs, [-1, n_neurons]) 
stacked_outputs = tf.layers.dense(stacked_rnn_outputs, n_outputs)

outputs = tf.reshape(stacked_outputs, [-1, n_steps, n_outputs])

outputs = outputs[:,n_steps-1,:] # keep only last output of sequence

loss = tf.reduce_mean(tf.squared_difference(outputs, y)) # loss function = mean squared error 

optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate) 

training_op = optimizer.minimize(loss)
saver = tf.train.Saver()
tf.summary.scalar("loss",loss)
tf.summary.histogram("outputs",outputs)
tf.summary.histogram("y",y)
tf.summary.histogram("X",X)
tf.summary.histogram("rnn_outputs",rnn_outputs)
tf.summary.histogram("states",states)
tf.summary.histogram("stacked_outputs",stacked_outputs)
tf.summary.histogram("stacked_rnn_outputs",stacked_rnn_outputs)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer()) 
    config = projector.ProjectorConfig()
    writer = tf.summary.FileWriter("write",sess.graph)
    merged = tf.summary.merge_all()
    for iteration in range(int(n_epochs*train_set_size/batch_size)):
        x_batch, y_batch = get_next_batch(batch_size) # fetch the next training batch 
    if iteration % int(1*train_set_size/batch_size) == 0:

            mse_train = loss.eval(feed_dict={X: x_train, y: y_train}) 
            out_train,merge = sess.run([outputs,merged], feed_dict={X: x_train, y: y_train})
            writer.add_summary(merge, iteration)
            projector.visualize_embeddings(writer, config)
            print('%.2f epochs: MSE train/valid/test = %.10f/%.10f/%.10f'%(
                iteration*batch_size/train_set_size, mse_train, mse_valid,mse_test))
            try:
                save_path = saver.save(sess, "write\\model"+str(iteration)+".ckpt")
            except Exception as e:
                print(e)
                if not os.path.exists("write\\"):
                    os.makedirs("write\\")

                save_path = saver.save(sess, "write\\model"+str(iteration)+".ckpt")

Вывод, который я получаю на проекторе, предназначен для переменных:

rnn/multi_rnn_cell/cell_1/lstm_cell/kernel
200x400
rnn/multi_rnn_cell/cell_1/lstm_cell/kernel/Adam
200x400
rnn/multi_rnn_cell/cell_1/lstm_cell/kernel/Adam_1
200x400
rnn/multi_rnn_cell/cell_0/lstm_cell/kernel
102x400
rnn/multi_rnn_cell/cell_0/lstm_cell/kernel/Adam
102x400
rnn/multi_rnn_cell/cell_0/lstm_cell/kernel/Adam_1
102x400

Где, как я ожидал, переменные IЯ визуализирую через скаляр и гистограмма также должна быть в состоянии получить визуализацию через проектор.Это означает переменные: loss,outputs,y,X,rnn_outputs,states,stacked_outputs,stacked_rnn_outputs

Я хочу посмотреть, как мой LSTM движется к желаемому результату, который я собираюсь получить.

Пожалуйста, помогите мне кто-нибудь.Если у вас есть какие-либо предложения, пожалуйста, поделитесь, я буду признателен.
Я использую последние Tensorflow 1.12 и Python version is 3.5

...