Проблемы при попытке изменить веса учебника cifar10 с помощью тензорного потока - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь изменить учебник cifar10, который поставляется с tenorflow (https://www.tensorflow.org/tutorials/images/deep_cnn, код в https://github.com/tensorflow/models/tree/master/tutorials/image/cifar10/), чтобы я мог навязывать некоторые значения весам во время обучения. Я работаю надciphar10_train.py и моя идея состоит в том, чтобы изменить некоторые веса сразу после того, как обучение выполнено, поэтому я сделал следующее: Это оригинальный код

...
     while not mon_sess.should_stop():
           mon_sess.run(train_op)

И я добавил следующее:

while not mon_sess.should_stop():
    mon_sess.run(train_op)
    mon_sess.graph._unsafe_unfinalize() 
    with tf.variable_scope('conv1', reuse=True):
      tf_weights1 = tf.get_variable('weights', dtype=tf.float32)
      weights1 = tf_weights1.eval(mon_sess)
      tf.assign(tf_weights1, weights1)

Итак, я в основном читаю значения коэффициентов первой свертки, а затем присваиваю их обратно. Я считаю, что это вообще не должно мешать тренировке. Но это так. Я получаю следующее: - Сходимость намного медленнее вновая версия (кажется, получается стек) - в новой версии время выполнения в начале меньше, чем раньше (я много раз пытался проверить, не совпадают ли времена конвергенции и выполнения, я знаю, что недостаточно только 490 тренировок)

Вот краткое изложение того, что я получаю с оригинальным файлом ciphar10_train.py:

2019-03-17 10: 11: 50.847561: шаг 0, потеря = 4,69 (356,8 примеров / с;0,359 сек / партия) 2019-03-17 10: 11: 57,850836: шаг 10, потери = 4,65 (182,8 примера / сек; 0,700 сек / партия) 2019-03-17 10: 12: 06.159439: шаг 20, потери = 4,49(154,1 примеров / с; 0,831 с / партия) 2019-03-17 10: 12: 14,487989: шаг 30, потеря = 4,41 (153,7 примеров / с; 0,833 с / партия) 2019-03-17 10: 12: 22.717968:шаг 40, потеря = 4,38 (155,5 примеров / сек; 0,823 сек / партия) 2019-03-17 10: 12: 30,965563: шаг 50, потеря = 4,32 (155,2 примеров / сек; 0,825 сек / партия) 2019-03-1710: 12: 39.161108: шаг 60, потеря = 4,30 (156,2 примера / сек; 0,820 с / партия) 2019-03-17 10: 12: 47,376030: шаг 70, потеря = 4,16 (155,8 примера / сек; 0,821 с / партия)) 2019-03-17 10: 12: 55.556312: шаг 80, потери = 4,35 (156,5 примеров / сек; 0,818 с / партия) 2019-03-17 10: 13: 03.752653: шаг 90, потери = 4,10 (156,2 примеров /с; 0,820 с / партия) 2019-03-17 10: 13: 12,245005: шаг 100, потери = 4,19 (150,7 примера / с; 0,849 с / партия) 2019-03-17 10: 13: 20.533454: шаг 110, потери= 4,10 (154,4 примера / с; 0,829 с / партия) 2019-03-17 10: 13: 29.092721: шаг 120, потеря = 4,44 (149,5 примеров / сек;0,856 с / партия) 2019-03-17 10: 13: 37,259310: шаг 130, потери = 3,99 (156,7 примеров / сек; 0,817 с / партия) 2019-03-17 10: 13: 45,657041: шаг 140, потери = 3,87(152,4 примера / сек; 0,840 секунды / партия) 2019-03-17 10: 13: 53,981991: шаг 150, потеря = 3,84 (153,8 примера / сек; 0,832 секунды / партия) 2019-03-17 10: 14: 02.404750:шаг 160, потеря = 3,91 (152,0 примера / сек; 0,842 сек / партия) 2019-03-17 10: 14: 10.664070: шаг 170, потеря = 4,00 (155,0 примера / сек; 0,826 сек / партия) 2019-03-1710: 14: 19.045780: шаг 180, потеря = 4,05 (152,7 примера / сек; 0,838 секунды / партия) 2019-03-17 10: 14: 27,319889: шаг 190, потеря = 3,98 (154,7 примера / сек; 0,827 секунды / партия)) 2019-03-17 10: 14: 35.604390: шаг 200, потеря = 3,76 (154,5 примера / сек; 0,828 с / партия) 2019-03-17 10: 14: 43,890144: шаг 210, потеря = 3,72 (154,5 примера /с; 0,829 с / партия) 2019-03-17 10: 14: 52,035008: шаг 220, потеря = 3,73 (157,2 примера / с; 0,814 с / партия) 2019-03-17 10: 15: 00.468037: шаг 230, потеря= 4,16 (151,8 примеров / с; 0,843 с / партия) 2019-03-17 10: 15: 08,681053: шаг 240, потери = 3,75 (155,9 примеров / с;0,821 с / пакет) 2019-03-17 10: 15: 17,320731: шаг 250, потери = 3,72 (148,2 примера / с; 0,864 с / партия) 2019-03-17 10: 15: 26.317990: шаг 260, потери = 3,66(142,3 примера / сек; 0,900 сек / партия) 2019-03-17 10: 15: 36,257296: шаг 270, потеря = 3,60 (128,8 примера / сек; 0,994 секунды / партия) 2019-03-17 10: 15: 44,794973:шаг 280, потеря = 3,52 (149,9 примера / сек; 0,854 секунды / партия) 2019-03-17 10: 15: 53,988424: шаг 290, потеря = 3,57 (139,2 примера / сек; 0,919 секунды / партия) 2019-03-1710: 16: 02.705855: шаг 300, потери = 3,68 (146,8 примеров / сек; 0,872 секунды / партия) 2019-03-17 10: 16: 11,390999: шаг 310, потери = 3,66 (147,4 примера / сек; 0,869 секунды / партия)) 2019-03-17 10: 16: 19.643515: шаг 320,потеря = 3,45 (155,1 примера / сек; 0,825 секунды / партия) 2019-03-17 10: 16: 27,725903: шаг 330, потеря = 3,54 (158,4 примера / сек; 0,808 секунды / партия) 2019-03-17 10:16: 36.197075: шаг 340, потеря = 3,54 (151,1 примера / сек; 0,847 сек / партия) 2019-03-17 10: 16: 44,721029: шаг 350, потеря = 3,73 (150,2 примера / сек; 0,852 сек / партия) 2019-03-17 10: 16: 53.344985: шаг 360, потери = 3,30 (148,4 примера / с; 0,862 с / партия) 2019-03-17 10: 17: 02.231438: шаг 370, потери = 3,43 (144,0 примеров / с; 0,889сек / партия) 2019-03-17 10: 17: 11.040202: шаг 380, потери = 3,53 (145,3 примеров / сек; 0,881 сек / партия) 2019-03-17 10: 17: 19.605994: шаг 390, потери = 3,38 (149,4 примера / сек; 0,857 сек / партия) 2019-03-17 10: 17: 28,110827: шаг 400, потери = 3,44 (150,5 примера / сек; 0,850 секунды / партия) 2019-03-17 10: 17: 36.374728: шаг410, потеря = 3,70 (154,9 примера / с; 0,826 с / партия) 2019-03-17 10: 17: 44,675773: шаг 420, потеря = 3,42 (154,2 примера / с; 0,830 с / партия) 2019-03-17 10: 17: 52.549617: шаг 430, потери = 3,59 (162,6 примеров / с;0,787 сек / партия) 2019-03-17 10: 17: 58.123745: шаг 440, потери = 3,31 (229,6 примера / сек; 0,557 сек / партия) 2019-03-17 10: 18: 02.488388: шаг 450, потери = 3,22(293,3 примера / сек; 0,436 сек / партия) 2019-03-17 10: 18: 06,814853: шаг 460, потери = 3,19 (295,9 примера / сек; 0,433 секунды / партия) 2019-03-17 10: 18: 11.123421:шаг 470, потери = 3,22 (297,1 примеров / с; 0,431 с / партия) 2019-03-17 10: 18: 15,478619: шаг 480, потери = 3,22 (293,9 примеров / с; 0,436 с / партия) 2019-03-1710: 18: 19.830606: шаг 490, потеря = 3,07 (294,1 примера / сек; 0,435 сек / партия)

И вот что я получаю с измененным кодом:

2019-03-17 10: 11: 56.762661: шаг 0, потери = 4,68 (209,1 примеров / сек; 0,612 с / партия) 2019-03-17 10: 12: 02.198028: шаг 10, потери = 4,64 (235,5примеры / с; 0,544 с / партия) 2019-03-17 10: 12: 07,531561: шаг 20, потери = 4,58 (240,0 примеров / с; 0,533 с / партия) 2019-03-17 10: 12: 12.900088: шаг 30, потеря = 4,50 (238,4 примера / сек; 0,537 сек / партия) 2019-03-17 10:12: 18,296302: шаг 40, потери = 4,40 (237,2 примера / сек;0,540 сек / партия) 2019-03-17 10: 12: 23,487027: шаг 50, потери = 4,44 (246,6 примера / сек; 0,519 сек / партия) 2019-03-17 10: 12: 28.758049: шаг 60, потери = 4,45(242,8 примера / с; 0,527 с / партия) 2019-03-17 10: 12: 34.223030: шаг 70, потеря = 4,34 (234,2 примера / с; 0,546 с / партия) 2019-03-17 10: 12: 39.590956:шаг 80, потери = 4,47 (238,5 примеров / с; 0,537 с / партия) 2019-03-17 10: 12: 44,824394: шаг 90, потери = 4,24 (244,6 примеров / с; 0,523 с / партия) 2019-03-1710: 12: 50.356076: шаг 100, потери = 4,22 (231,4 примера / с; 0,553 с / партия) 2019-03-17 10: 12: 55,754974: шаг 110, потери = 4,30 (237,1 примеров / с; 0,540 с / партия) 2019-03-17 10: 13: 01.099181: шаг 120, потери = 4,25 (239,5 примеров / сек; 0,534 с / партия) 2019-03-17 10: 13: 06.601004: шаг 130, потери = 4,25 (232,7 примеров /сек; 0,550 сек / партия) 2019-03-17 10: 13: 11,884372: шаг 140, потеря = 4,17 (242,3 примера / сек; 0,528 сек / партия) 2019-03-17 10: 13: 17.199927: шаг 150, потеря= 4,16 (240,8 примеров / сек; 0,532 сек / партия) 2019-03-17 10:13:22.593038: шаг 160, потери = 4,18 (237,3 примера / сек;0,539 сек / партия) 2019-03-17 10: 13: 27,796050: шаг 170, потери = 4,08 (246,0 примеров / сек; 0,520 сек / партия) 2019-03-17 10: 13: 33,037915: шаг 180, потери = 4,10(244,2 примера / сек; 0,524 сек / партия) 2019-03-17 10: 13: 38,450012: шаг 190, потери = 4,45 (236,5 примера / сек; 0,541 секунды / партия) 2019-03-17 10: 13: 44.026984:шаг 200, потеря = 4,07 (229,5 примеров / с; 0,558 с / партия) 2019-03-17 10: 13: 49.277913: шаг 210, потери = 4,08 (243,8 примеров / с; 0,525 с / партия) 2019-03-1710: 13: 54.588222: шаг 220, потеря = 3,96 (241,0 примеров / сек; 0,531 сек / партия) 2019-03-17 10: 13: 59,798992: шаг 230, потери = 4,12 (245,6 примеров / сек; 0,521 сек / партия)) 2019-03-17 10: 14: 05.167819: шаг 240, потери = 4,14 (238,4 примера / сек; 0,537 с / партия) 2019-03-17 10: 14: 10,583429: шаг 250, потери = 4,09 (236,4примеры / сек;0,542 сек / партия) 2019-03-17 10: 14: 15,899910: шаг 260, потери = 3,96 (240,8 примеров / сек; 0,532 сек / партия) 2019-03-17 10: 14: 21.338393: шаг 270, потери = 4,07(235,4 примера / сек; 0,544 сек / партия) 2019-03-17 10: 14: 26,855987: шаг 280, потери = 3,91 (232,0 примера / сек; 0,552 секунды / партия) 2019-03-17 10: 14: 32.414050:шаг 290, потеря = 3,87 (230,3 примера / с; 0,556 с / партия) 2019-03-17 10: 14: 38.084092: шаг 300, потеря = 3,77 (225,7 примера / с; 0,567 с / партия) 2019-03-1710: 14: 43.469506: шаг 310, потеря = 3,84 (237,7 примера / сек; 0,539 с / партия) 2019-03-17 10: 14: 48,924003: шаг 320, потеря = 3,92 (234,7 примера / сек; 0,545 с / партия)) 2019-03-17 10: 14: 54.304538: шаг 330, потери = 3,84 (237,9 примеров / сек; 0,538 с / партия) 2019-03-17 10: 14: 59,737987: шаг 340, потери = 3,83 (235,6 примеров /сек; 0,543 сек / партия) 2019-03-17 10: 15: 05.136907: шаг 350, потеря = 3,99 (237,1 примеров / сек; 0,540 сек / партия) 2019-03-17 10: 15: 10.794928: шаг 360, потеря= 3,75 (226,2 примера / с; 0,566 с / партия) 2019-03-17 10: 15: 16,195641: шаг 370, потери = 3,99 (237,0 примеров / с;0,540 сек / партия) 2019-03-17 10: 15: 21,907280: шаг 380, потери = 3,81 (224,1 примера / сек; 0,571 сек / партия) 2019-03-17 10: 15: 28.259021: шаг 390, потери = 3,76(201,5 примеров / сек; 0,635 секунд / партия) 2019-03-17 10: 15: 35.153048: шаг 400, потери = 3,91 (185,7 примеров / сек; 0,689 секунды / партия) 2019-03-17 10: 15: 40,966003:шаг 410, потеря = 3,73 (220,2 примера / сек; 0,581 сек / партия) 2019-03-17 10: 15: 47,025151: шаг 420, потеря = 3,83 (211,3 примера / сек; 0,606 сек / партия) 2019-03-1710: 15: 52.934916: шаг 430, потеря = 3,72 (216,6 примера / сек; 0,591 с / партия) 2019-03-17 10: 15: 58,595045: шаг 440, потеря = 3,68 (226,1 примера / сек; 0,566 с / партия)) 2019-03-17 10: 16: 04.355028: шаг 450, потеря = 3,86 (222,2 примера / сек; 0,576 с / партия) 2019-03-17 10: 16: 10,518952: шаг 460, потеря = 3,62 (207,7 примера /с; 0,616 с / партия) 2019-03-17 10: 16: 16,194161: шаг 470, потери = 3,71 (225,5 примеров / с; 0,568 с / партия) 2019-03-17 10: 16: 21,680450: шаг 480, потери= 3,76 (233,3 примера / с; 0,549 с / партия) 2019-03-17 10: 16: 27,189253: шаг 490, потери = 3,84 (232,4 примера / с;0,551 сек / пакет)

Я новичок в Python и Tensflow, поэтому я прошу прощения, если то, что я спрашиваю, довольно тривиально.

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...