def fit(self, sess, summarizer):
sess.run(self.init)
sess.run(self.local_init)
max_epochs = self.config.max_epochs
self.epoch_count, val_accuracy, reward = 0, 0.0, 1.0
while self.epoch_count < max_epochs:
# Creation of new Child Network from new Hyperparameters
self.hype_list = sess.run(self.hyperparams)
hyperfoo = {"Filter Row 1": self.hype_list[0], "Filter Column 1": self.hype_list[1], "No Filter 1": self.hype_list[2], "Filter Row 2": self.hype_list[3], "Filter Column 2": self.hype_list[4], "No Filter 2": self.hype_list[5], "Filter Row 3": self.hype_list[6], "Filter Column 3": self.hype_list[7], "No Filter 3": self.hype_list[8], "No Neurons": self.hype_list[9]}
output = ""
for key in hyperfoo:
output += "{} : {}\n".format(key, hyperfoo[key])
with open("../stdout/hyperparams.log", "a+") as f:
f.write(output + "\n\n")
print(sess.run(self.outputs))
print(output + "\n")
self.second_epoch_count = 0
while self.second_epoch_count < max_epochs :
average_loss, tr_step = self.run_model_epoch(sess, "train", summarizer['train'], self.second_epoch_count)
if not self.config.debug:
val_loss, val_accuracy = self.run_model_eval(sess, "validation", summarizer['val'], tr_step)
reward = sum(val_accuracy[-5:]) ** 3
output = "=> Training : Loss = {:.3f} | Validation : Loss = {:.3f}, Accuracy : {:.3f}".format(average_loss, val_loss, val_accuracy[-1])
with open("../stdout/validation.log", "a+") as f:
f.write(output)
print(output)
self.second_epoch_count += 1
_ = sess.run(self.tr_cont_step, feed_dict={self.val_accuracy : reward})
test_loss, test_accuracy = self.run_model_eval(sess, "test", summarizer['test'], tr_step)
self.epoch_count += 1
self.cNet, self.y_pred = self.init_child(self.hype_list)
self.cross_loss, self.accuracy, self.tr_model_step = self.grow_child()
returnDict = {"test_loss" : test_loss, "test_accuracy" : test_accuracy}
self.saver.save(sess, self.config.ckptdir_path + "/model_best.ckpt")
return returnDict
__main__.py 文件源码
python
阅读 20
收藏 0
点赞 0
评论 0
评论列表
文章目录