±à¼ÍƼö: |
±¾ÎĽ²½âLogistic»Ø¹éµÄTensorboard¿ÉÊÓ»¯£¬µ¼ÈëÊý¾Ý¼¯£¬²ÎÊýÉèÖ㬹¹½¨Ä£ÐͺͲÙ×÷£¨Ä£ÐÍ+Ëðʧº¯Êý+ÓÅ»¯+׼ȷÂÊ£©¡£Ï£Íû¶ÔÄúÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ¼òÊ飬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼¡¢ÍƼö¡£ |
|
×î½üÅܳÌÐò£¬Òª¼à¿ØËðʧ±ä»¯Çé¿ö£¬·½±ãµ÷ÊÔ³ÌÐò¡£·¢ÏÖtensorboardÊǸöºÃ¹¤¾ß£¬µ«Ò»Ö±Ã»Ê¹Óᣱ¾ÎÄÊÇѧϰ±Ê¼Ç
Ö÷ÒªÓõÄÊÇtf.summary,Ö÷Òª°üÀ¨£º
1. tf.summary.histogram(Éú³ÉHistogram ºÍdistribution),
´úÂëʾÀý£º
tf.summary.histogram('layer'+str(i+1) +'weights',weights) |
2. tf.summary.scalar£º Ö÷ÒªÓÃÓڼǼÖîÈ磺׼ȷÂÊ¡¢ËðʧºÍѧϰÂʵȵ¥¸öÖµµÄ±ä»¯Ç÷ÊÆ¡£
´úÂëʾÀý£º
with tf.name_scope('accuracy'):
correct_prediction = tf.equal (tf.argmax(logits,
1), tf.argmax(y, 1))
accuracy = tf.reduce_mean (tf.cast(correct_prediction,
tf.float32))
tf.summary.scalar('accuracy', accuracy) |
3. tf.summary.image:
×÷ÓãºÈç¹ûÄãµÄÄ£ÐÍÊäÈëÊÇͼÏñ£¬Ïë¼ì²éÿ´ÎÊäÈëµÄͼÏñÒÔ±£Ö¤ÕýÈ·ÐÔ¡£iamgesÃæ°å¾Í¿ÉÒÔÏÔʾ³öÏàÓ¦µÄÊäÈëͼÏñ£¬Ä¬ÈÏÏÔʾ×îеÄÊäÈëͼÏñ¡£
´úÂëʾÀý£º
x = tf.placeholder(tf.float32,
shape=[None, N_FEATURES],
name='x')
x_image = tf.transpose(tf.reshape (x, [-1, 3, 32,
32]), perm=[0, 2, 3, 1])
tf.summary.image('input', x_image, max_outputs=3)
y = tf.placeholder(tf.float32, [None, N_CLASSES],
name='labels') |
ÆäÖвÎÊýmax_outputs±íʾ×î¶àÏÔʾ¼¸ÕÅͼƬ¡£
4. tf.summary.FileWriter£¨·Ö±ðÉú³ÉÈÕÖ¾), Ö¸¶¨Ò»¸öĿ¼À´¸æËß³ÌÐò°ÑÎļþ·Åµ½ÄÄÀȻºóÔËÐеÄʱºòʹÓÃadd_summary()À´½«Ä³Ò»²½µÄsummaryÊý¾Ý¼Ç¼µ½ÎļþÖÐ
´úÂëʾÀý£º
eval_writer =
tf.summary.FileWriter
(LOGDIR + '/eval')# Some
other code
seval_writer.add_summary(tf.Summary (value=[tf.Summary.Value(tag='eval_accuracy',
simple_value=np.mean(test_acc))]), i) |
5. tf.summary.merge_all(ÕûÀíÈÕÖ¾²Ù×÷µÄ£¬sess.runÒ»´Î¾Í²»ÓöÔÉÏÊö·Ö±ðrun)
GraphsÃæ°å
ÓÃÓÚ´Ó×ÜÌåÉÏ¿´Ëù¹¹½¨µÄÍøÂç½á¹¹£¬¿ÉÒÔÏÔʾѵÁ·Êý¾ÝÁ÷µÄ·½ÏòºÍ´óС£¬ÑµÁ·Ê±Ã¿¸ö½ÚµãµÄÓÃʱ£¬ºÄ·ÑÄÚ´æµÄ´óС£¬ÒÔ¼°²ÎÊýµÄ¶àÉÙ¡£Ö÷Òª·ÖΪÁ½²¿·Ö£ºÖ÷ͼ£¨ÍøÂç½á¹¹£©ºÍ¸¨Öú½Úµã£¨³õʼ»¯¡¢ÑµÁ·¡¢±£´æµÈ½Úµã£©¡£Ã¿¸ö½Úµã¶¼ÊÇÓÃtf.name_scope()À´¶¨ÒåµÄ¡£
tensorboardĬÈϲ»¼Ç¼ÿ¸ö½ÚµãµÄÓÃʱ¡¢ºÄ·ÑÄÚ´æ´óСµÈÐÅÏ¢µÄ£¬ÒªÏÔʾÕâЩÐÅÏ¢£¬ÐèÒªÔÙsess.run()ÖмÓÈëoptionsºÍrun_metadata²ÎÊý¡£Ìí¼ÓÏÂÁдúÂ룺
run_options =
tf.RunOptions
(trace_level=tf.RunOptions.FULL_TRACE)
run_metadata = tf.RunMetadata()
s, lss, acc , _ = sess.run ([merged_summary, loss,
accuracy, train_step],
feed_dict={x: batch_x, y: batch_y, phase: 1},
options=run_options,
run_metadata=run_metadata)
summary_writer.add_run_metadata (run_metadata,
'step{}'.format(i))
summary_writer.add_summary(s, i) |
DistributionsÃæ°å
ÓÃÓÚÕ¹Ê¾ÍøÂçÖи÷²ÎÊýËæÑµÁ·²½ÊýÔö¼ÓµÄ±ä»¯Çé¿ö¡£Èç£ºÈ¨ÖØµÄ·Ö²¼
with tf.name_scope(name):
W = tf.Variable(tf.truncated_normal(
[k, k, channels_in, channels_out], stddev=0.1),
name='W')
b = tf.Variable(tf.constant (0.1, shape=[channels_out]),
name='b')
conv = tf.nn.conv2d(inpt, W, strides=[1, s, s,
1], padding='SAME')
act = tf.nn.relu(conv)
tf.summary.histogram('weights', W)
tf.summary.histogram('biases', b)
tf.summary.histogram('activations', act) |
HistogramsÃæ°å
ºÍdistributionsÊǶÔͬһÊý¾Ý²»Í¬·½Ê½µÄÕ¹ÏÖ¡£ÊÇÆµÊýÖ±·½Í¼µÄ¶Ñµþ¡£
ºáÖá´ú±íÈ¨ÖØÖµ£¬×ÝÖá´ú±íѵÁ·²½Êý¡£ÑÕɫԽÉî±íʾʱ¼äÔ½Ô磬Խdz±íʾԽÍí
|