±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËtensorflow tensorboardµÄ»ù´¡²Ù×÷ÒÔ¼°Ê¹Ó÷½·¨¡¢Ó¦Óó¡¾°ºÍ³£¼ûÎÊÌ⣬ϣÍû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚCSDN£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£
|
|
Ïêϸ½éÉÜ£º
»ù´¡²Ù×÷Á½·½Ãæ:
µÚÒ»·½Ã棺¡°ÖÆ×÷¡±¸÷ÖÖ±êÁ¿¡¢¼Ç¼½Úµã£¬Í¼±ê¡¢Í¼Æ¬µÈµÄ¼Ç¼»ã¼¯£¬sess.run´Ó¼ÆËãͼµÃµ½Ò»´Î»ã¼¯µÄ¼Ç¼¡£
¹ØÓÚsess.run(merged)£¬¿ÉÒÔ°ÑÕâ¸öÒ²µ±×ö¼ÆËãͼÖеõ½ÁËÒ»¸ö½á¹û£¬Ö»ÊDz»Í¬ÓÃ;¡£¼ÈÈ»ÊǼÆËãͼ£¬¾ÍÉÙ²»ÁËÒªfeedÊý¾Ý£¬feedµÄÊý¾Ý²»Í¬£¬µÃµ½µÄ½á¹ûÒ²¾Í²»Í¬£¬Èç¹ûʹÓÃÁË´íÎóµÄfeedÊý¾Ý£¬ºÜ¿ÉÄܵõ½µÄ»æÖƽá¹ûÒ²²»·ûºÏÔ¤ÆÚ£¬Ï±߻áÓÐÀý×Ó½éÉÜ£¡
ʣϵÄÒ²¾ÍÊÇscalarºÍhistgram¶ÔtensorÐÎ×´µÄÒªÇó²»Í¬£¬ÊäÈë´íÁË×ÔÈ»±¨´í£¨ÊÖ¶¯»¬»ü£©£¬imageµÄ»°£¬Ò²ÒªÏÈreshapeµ½ºÏÊʵÄÐÎ×´¡£
µÚ¶þ·½Ã棺ÀûÓñ¾graph³õʼ»¯writer£¬°Ñsess.runµÃµ½µÄ¼Ç¼ͨ¹ýwriterдÈëÎļþ£¬¹Ø±Õwriter¡£
ΨһעÒâµÄ¾ÍÊÇÄǸöglobal_stepµÄÒâÒ壬Õâ¸östepÒ²¾ÍÊÇ»æÖÆÍ¼±êµÄºáÖá×ø±êÁË£¬Èç¹ûÓÃÆÕͨµÄi£¬Èç¹û¶ÏµãÐøÑµ´ÓÍ·¿ªÊ¼¼ÆË㣬ÄÇôͼ±êÒ²¾Í»æÖÆÀÃÁË£¬ËùÒÔ×îºÃÊÇÓÃÓмǼµÄglobal_step£¬Äܹ»±£Ö¤¶ÏµãÐøÑµµÄͼƬ»æÖÆÍêÕû¡£
tf.summary.scalar/image/histogram()
merged = tf.summary.merge_all()
summary = sess.run(merged)
writer = tf.summary.FileWriter(logdir, graph=sess.graph)
writer.add_summary(summary, global_step=i)
writer.close() |
Á½Öֺϲ¢·½·¨£¬µÚÒ»ÖÖÈ«ºÏ²¢£¬±È½Ï¼òµ¥£»µÚ¶þÖÖÖ¸¶¨£¬¾«¼ò£¬±ÈÈçͬʱ¹Û²ìѵÁ·¼¯ºÍ²âÊÔ¼¯µÄ׼ȷÂÊ£¬²ÎÊýÖ®ÀàµÄ²»ÐèÒªÒ²ÏÔʾÁ½·Ý¡£
summary_ce =
tf.summary.scalar('cross_entropy', cross_entropy)
summary_accuracy = tf.summary.scalar('accuracy',
accuracy)
merged = tf.summary.merge_all()
test_merged = tf.summary.merge(inputs=[summary_ce,summary_accuracy]) |
ÌØÊâÓ÷¨£º
ͬʱÏÔʾѵÁ·¼¯ºÍ²âÊÔ¼¯ÇúÏß
ÓÃÁ½¸öwriter£¬Ö¸¶¨Á½¸ö·¾¶£¬·Ö±ð¼Ç¼ѵÁ·¼¯ºÍ²âÊÔ¼¯µÄ׼ȷÂÊ£¬ÔËÐÐtensorboardͬʱ¶ÁÈ¡Á½¸öeventÎļþ¡£
#tensorboard
--logdir = event1:"dir1",eventrun2:"dir2" |
Ó¦Óó¡¾°
Ó¦Ó㺶ԱȲâÊÔ¼¯ÓëѵÁ·¼¯µÄ׼ȷÂÊ
Èç¹ûÊÇ´ødropoutµÄѵÁ·£¬²»ÒªÔÚtrainͬʱµÃµ½accuracy£¬»á³öÏÖ׼ȷÂʵ¹¹Ò£¬ÑµÁ·×¼È·ÂʵÍÓÚ²âÊÔ׼ȷÂÊ£¨À¶Ïߣ©.
¸ÄÍêÁËÒ²²»ÄÜÃ÷ÏÔ¿´µ½¡°ÑµÁ·×¼È·ÂʸßÓÚ²âÊÔ׼ȷÂÊ¡±µÄÇé¿ö
Ò²ÓÐÒ»·½ÃæÔÒòÊÇconv½âMNISTÌ«¼òµ¥ÁË£¬À²»¿ª²î¾à£¬testÓõÄbatch̫СÁË£¬²»ÈÝÒ×·´Ó¦ÕûÌ壬À²»¿ª²î¾à£¬ÒòΪ»úÆ÷ÐÔÄܵÄÏÞÖÆ£¬Ò»´Î²»ÄÜÔËÐÐÕû¸ö²âÊÔ¼¯£¬summaryÊÇÄÃtensor£¬ÊÇtensor¾ÍµÃfeedÊý¾Ý£¬feedÊý¾Ý¾ÍÓÐsizeÏÞÖÆ£¬ÓÖ²»¿ÉÒÔÔÚpythonÀï×Ô¼º×öÑ»·ºÍƽ¾ù£¬ÕâÊǸöÎÊÌâ¡£
ÎÊÌ⣺Á½¸öeventµÄÏÔʾÑÕÉ«²»ÈçÈËÒâ
ÒòΪÔËÐвÎÊýµÈÓÚdictÐÎʽ£¬trainingÅÅÔÚtestingºó±ß£¬ËùÒÔÑÕÉ«µ÷ת¡£×Ô¼º¸Ä¸ÄÃû×־ͺÃÁË
Ó¦ÓãºÀûÓÃÃüÃû¿Õ¼ä·ÖÀà²é¿´
±äÁ¿Ì«¶àµÄʱºò£¬¿´ÆðÀ´»áºÜ»ìÂÒ£¬Ê¹ÓÃÃüÃû¿Õ¼ä¾ÍºÜÓÐÓÃÁË¡£
ÀýÈçµÚ¶þ¸öFC¶ÔÓ¦µÄBN²ã£¬ÏÈgetµ½tensor£¬È»ºó°ÑtensorÌí¼Óµ½histogram£¬ÃüÃû£¬¼Óbf_fc2ǰ׺
Ó¦ÓãºÔö¼ÓGRAPH¿É¶ÁÐÔ
´ó¶àÊýʱºò£¬¼ÆËãͼÖУ¬³ýÁËÖ÷Á÷³Ì£¬»¹»áÓи÷ÖÖÒÀÀµ¹ØÏµºÍ±ß½Ç²Ù×÷£¬Ôö¼ÓͼÏñ¸´ÔÓ¶È£¬½µµÍ¿É¶ÁÐÔ£¬¿ÉÒÔ°ÑÎ޹زÙ×÷´ÓͼÖÐÈ¥³ý¡£
Ó¦ÓãºÑéÖ¤ReLU¡°×îÓÅ¡±bias³õʼֵ
³õѧ¿ÉÄܲ»ÖªµÀbias¸Ä³õʼ»¯³Éʲô£¬¿´¹ýЩ´úÂë¿ÉÄÜÈÏΪbiases³õʼ»¯Îª0.1ºÏÊÊ£¬µ«ÊDz»¿´Í¼ÊDz»ÖªµÀΪʲôµÄ¡£
ͨ¹ýtensorboard´òÓ¡biasesµÄ·Ö²¼£¬¿ÉÒÔ¿´µ½ÏëÒªµÄ´ð°¸¡£
ÈçÏ£ºÁ½²ãconv£¨32,64£©£¬ReLU¼¤»î£¬Á½²ãfc£¨°üÀ¨Êä³ö²ã£¬1024,10£©£¬Ê¶±ðMNIST¡£
W³õʼ»¯0£¬b³õʼ»¯0.1£¬WµÄ·Ö²¼ºÜÎȵÄÔÚ0¸½½ü¡£
batch=256£¬20000²½£¬bÓÐËùϽµ£¬µ«ÊÇҲû½Ó½ü0
ÆäËû²»¶¯£¬biases³õʼ»¯±ä³É0.2
Æäʵ°´±ÈÀý¿´µÄ»°£¬0.2ºÍ0.1Ç÷ÊÆ²îÒì²¢²»Ã÷ÏÔ£¬ÒòΪÎÒҲû¿ÕÎÞÏÞѵÁ·ÏÂÈ¥£¬20k½ØÖ¹¡£
³õʼ»¯biasesΪ0.0£º
ҲûʲôÉÏÉýÇ÷ÊÆ£¬Ö¤Ã÷0.1²»Ò»¶¨´ú±í×îÓÅ£¬µ«ÊÇÕâ¸öÄ£ÐÍÒ²Ö»ÊǸöÀý¡£×ÜÖ®£¬ÑµÁ·Ö®ºóµÄbiases±È½ÏÇ÷½ü0~0.2Õâ¸ö·¶Î§¡£
ËäÈ»³õʼ0ҲûÉÏÉýµ½0.1µÄÇ÷ÊÆ£¬µ«ÊÇÒ²²»ÄÜÓÃ0£¬0ÓÐÁíÒ»¸öȱµã£¬ReLU¸ºÖáÊä³ö0£¬ÕýÖáбÂÊÊÇ1£¬wºÍb¶¼ÊÇ0µÄ»°£¬Õý·´¶¼Êä³ö0£¬²»ÀûÓÚѵÁ·¡£
biases³õʼ»¯0.0ºÍ0.1µÄ¸÷²ãÊä³ö·Ö²¼£º²»ÄÜ´ÓͼÐÎÉÏÖ±½Ó˵0.0ºÜ²»ºÃ£¬µ«ÊǶԱÈ0.1£¬×Ðϸ¿´×Ý×ø±ê£¬È·Êµ0.1µÄ³õʼ»¯³õÆÚÊä³öµÄ·Ö²¼¸ü¹ã·ºÒ»Ð©£¬¶øÑµÁ·Ö®ºóµÄÊä³ö·Ö²¼£¬Ò²ÊÇÇ÷ÏòÓÚ¸ü¿í·º¡£
׼ȷÂÊ±ä»¯Çø±ð²»Ã÷ÏÔ?
ǰ±ßÓõÄReLU£¨0.1Õë¶ÔReLU£©£¬×÷Ϊ¶Ô±È£¬ÓÃsigmoidÊÔһϣ¨Ëõ¼õ²½Êý£©£º
³õʼ»¯0.0£¨Óб为ÊýÇ÷ÊÆ£©
³õʼ»¯0.1£¨µÚÒ»²ãÓÐÃ÷ÏԵı为Ç÷ÊÆ£¬ºó±ß²»Ã÷ÏÔ£©
½áÂÛ£º
ËùÒÔ£¬0.1ÊÇÒ»¸ö×ÔȻѡÔñ£¬²¢ÇÒÈ˹¤trade-offµÄÖµ¡£
µÚÒ»²ãÓ°Ïì±È½Ï´ó£¬Ç÷ÊÆÃ÷ÏÔ£¬ºó±ßµÄÖð½¥²»Ã÷ÏÔ£¬Èç¹ûÓÐBN£¬¿ÉÄܽøÒ»²½Ë¥¼õ¡£
¿¼Âǵ½Ä£ÐÍ¿íÈݶȹý¸ß£¬ºÜÔç׼ȷÂʾͷⶥ£¬ÊµÑéЧ¹ûÒ²²»ºÃ£¬»¹Óв»Í¬µÄÄ£ÐÍ£¬¸´ÔÓÄ£Ðͺͼòµ¥Ä£ÐÍÒ²²»Ò»Ñù£¬Çé¿öÌ«¶à£¬Ã»·¨²âÍ꣬Óлú»áÔÙÍêÉÆ¡£
µ«ÊǺÜÃ÷ÏÔ£¬0.1Ò²²»ÊÇÕæÀí£¬Ã¿Ò»¸öÄ£ÐÍ£¬Ã¿Ò»²ã£¬¶¼¶àÉÙÓÐЩ²»Ò»Ñù¡£
todo£º¸ü½øÒ»²½£¬ÎªÊ²Ã´Ç¡ÇÉÊÇ0.1£¿¿ÉÒÔ¹Û²ìÓò»Í¬µÄÊý¾Ý¼¯²»Í¬µÄ±êÇ©£¬±ÈÈç20¸ö±êÇ©»òÕß5¸ö±êÇ©£¬ÊÇ·ñ¶¼ÊÇ0.1¸½½ü×îÓÅ£¿
|