好的,在Torch ML;)中非常简单,我下面是线程化的indico示例来加载数据-https://indico.io/blog/tensorflow-data-input-part2-extensions/
所以,我找到了三种方法,我不喜欢,我相信还有更好的方法。在
1)在两个不同的应用程序上培训和评估/验证\app\run-tensorflow/models/image/cifar10/cifar10_火车.py和cifar10_评估值在
我不喜欢这个,因为我会浪费资源,例如在cifar10中的GPU_评估值会跑的。我可以从一个文件或应用程序都这样做,但不喜欢保存如果模型不是最好的执行模型!在
使用MN2/TENSIST模型/验证模型/卷积.py在
好得多,但我不喜欢这样的事实,我需要记住所有的模型参数,我确信有更好的方法来共享TensorFlow中的参数,也就是说,我可以复制模型,并说它是为了参数共享,但输入源是不同的?在
3)目前我正在使用tf.占位符在
但不能做穿线的事情,也就是说。随机化随机洗牌用这种方法。也许我不知道该怎么做。在
那么,我该怎么做呢,通过线程加载列车数据,进行一个时期的训练,然后使用这些权重,再次执行线程化来加载验证数据并获得模型性能呢?在
基本上是多线程和多线程训练的最佳方式。示例完全类似于torch-https://github.com/soumith/imagenet-multiGPU.torch中的imagenet多GPU训练
非常感谢你!在
变量共享方法可能是实现您想要的最简单的方法。在
使用tf.可变范围()和tf.get_变量()您可以重用变量,而不必显式地管理共享。您可以在函数中定义模型,用不同的参数调用它,但在两个调用之间共享模型变量。在
还有一些便利层包装了Tensorflow的变量管理。一种选择是Tensorflow Slim,这使得定义一些模型类(特别是卷积模型)更容易。在
相关问题 更多 >
编程相关推荐