V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alwayshere
V2EX  ›  程序员

github 上 tensorflow 一个简单项目,新手有点不太懂

  •  
  •   alwayshere · 2017-04-24 11:49:03 +08:00 · 3343 次点击
    这是一个创建于 2531 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/anhad13/DeepAestheticLearning

    对 TF 入门有一点点模糊的概念,因为看文档教程实在乏味又晦涩,想在 github 上找个简单项目找到大致的感觉明确方向再入门,然后找到了这么一个简单的项目,目前就是有两点不太懂:

    1. 这里面的 build_model.py 中, no_of_epochs 指的是什么?假如我训练样本图片有 25 万张,这个 no_of_epochs 该取值多少?
    2. tensorflow 是否有“缓存”这一概念,这个项目中,作为 phper 大致看了下 Python 代码,每次测试一张图片貌似都要训练一次样本集,如果图片太多比如几十万张的情况下,是否也太慢了,可否训练一次几十万张图片样本,然后“缓存”下来,用缓存的结果去测试一张图片,这样的话,代码上该怎样实现 求 V2er 解疑释惑,不胜感激
    6 条回复    2017-04-24 13:01:26 +08:00
    enenaaa
        1
    enenaaa  
       2017-04-24 12:05:47 +08:00   ❤️ 1
    1 、 no_of_epochs 是训练次数,在准确率收敛前增加次数能提高准确率。

    2 、这个问法有点让我有点愣住。 每次训练,信息都会“保存”在神经网络的参数里, 训练好之后就可以直接测试了。
    这个“保存”说得不确切, 大体上网络参数会根据输入图片和预设答案不断调整,参看“反向传播算法”。
    alwayshere
        2
    alwayshere  
    OP
       2017-04-24 12:16:09 +08:00
    @enenaaa 谢谢,如果是 25 万张图片,建议 no_of_epochs 该具体量化成多少呢?我说的“缓存”是指缓存在硬盘上,这个 build_model.py 中,每次调用 predict 都要先“ load_training_set ”一次,也就是说先要跑一次所有图片样本集,这样做是否会消耗大量时间?新手幼稚问题哈,希望不要被贻笑大方
    954880786
        3
    954880786  
       2017-04-24 12:17:48 +08:00 via iPhone
    1. 可以这么理解 epoch 数是指把整个训练样本训练几遍,由于目前基本都使用 sgd 算法,每次训练只会从样本中取一个小部分作为一个 batch 进行训练。 epoch 数越高一般模型表现会越好,但过多也没有什么意义。

    建议楼主可以学习 cs229 和 cs231n 普及一下基本概念。
    Xs0ul
        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 ,不自己推导反向传播公式之类的倒是无所谓。但是啥理论也不想看,就想直接看懂代码做了什么。。那可能想多了
    princelai
        5
    princelai  
       2017-04-24 12:26:55 +08:00 via Android
    保存到本地是 tf.train.saver 吧,其实就是把参数保存起来, epoch 设置为多少要看模型,简单的几百次就收敛了,复杂的可能要几万次吧
    enenaaa
        6
    enenaaa  
       2017-04-24 13:01:26 +08:00
    @alwayshere
    训练次数看结果什么时候收敛,不同的模型不一样。训练次数、学习率、规范化参数怎么设置,怎么优化就需要了解下理论了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5386 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:47 · PVG 15:47 · LAX 00:47 · JFK 03:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.