尝试使用Tensorflow修改cifar10教程的重量问题

时间:2019-03-17 10:33:22

标签: python tensorflow deep-learning conv-neural-network

我正在尝试修改tensorflow(https://www.tensorflow.org/tutorials/images/deep_cnn,代码在https://github.com/tensorflow/models/tree/master/tutorials/image/cifar10/中)附带的cifar10教程,以便在训练期间可以对weigth施加一些值。我正在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-17   10: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-17   10: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-17   10: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-17 10: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-17 10: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-17 10: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-17 10: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-17 10: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和tensorflow的新手,所以我很抱歉我的要求很微不足道。

感谢您的帮助!

0 个答案:

没有答案