https://github.com/anhad13/DeepAestheticLearning
对 TF 入门有一点点模糊的概念,因为看文档教程实在乏味又晦涩,想在 github 上找个简单项目找到大致的感觉明确方向再入门,然后找到了这么一个简单的项目,目前就是有两点不太懂:
1
enenaaa 2017-04-24 12:05:47 +08:00 1
1 、 no_of_epochs 是训练次数,在准确率收敛前增加次数能提高准确率。
2 、这个问法有点让我有点愣住。 每次训练,信息都会“保存”在神经网络的参数里, 训练好之后就可以直接测试了。 这个“保存”说得不确切, 大体上网络参数会根据输入图片和预设答案不断调整,参看“反向传播算法”。 |
2
alwayshere OP @enenaaa 谢谢,如果是 25 万张图片,建议 no_of_epochs 该具体量化成多少呢?我说的“缓存”是指缓存在硬盘上,这个 build_model.py 中,每次调用 predict 都要先“ load_training_set ”一次,也就是说先要跑一次所有图片样本集,这样做是否会消耗大量时间?新手幼稚问题哈,希望不要被贻笑大方
|
3
954880786 2017-04-24 12:17:48 +08:00 via iPhone
1. 可以这么理解 epoch 数是指把整个训练样本训练几遍,由于目前基本都使用 sgd 算法,每次训练只会从样本中取一个小部分作为一个 batch 进行训练。 epoch 数越高一般模型表现会越好,但过多也没有什么意义。
建议楼主可以学习 cs229 和 cs231n 普及一下基本概念。 |
4
Xs0ul 2017-04-24 12:19:11 +08:00 1
1. no_of_epochs 是 number of epochs ,一般把整个训练集循环一遍叫一个 epoch 。
2. “每次测试一张图片貌似都要训练一次样本集”,模型就是要靠比较每一次的测试结果和真实结果来训练的,所以不存在先训练再测试的说法。 这两个问题,倒其实不算是 deep learning 的内容。楼主可以看看 gradient descend/梯度下降法 以及修改版 SGD/随机梯度下降法、 minibatch GD/批量梯度下降。 不过讲道理,入门 deep learning ,不自己推导反向传播公式之类的倒是无所谓。但是啥理论也不想看,就想直接看懂代码做了什么。。那可能想多了 |
5
princelai 2017-04-24 12:26:55 +08:00 via Android
保存到本地是 tf.train.saver 吧,其实就是把参数保存起来, epoch 设置为多少要看模型,简单的几百次就收敛了,复杂的可能要几万次吧
|
6
enenaaa 2017-04-24 13:01:26 +08:00
@alwayshere
训练次数看结果什么时候收敛,不同的模型不一样。训练次数、学习率、规范化参数怎么设置,怎么优化就需要了解下理论了。 |