使用线程进行数据加载训练时,在验证集中保存性能最好的张量流模型的最有效方法

2024-05-16 20:42:38 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,在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训练

非常感谢你!在


Tags: 数据方法pyhttps模型应用程序示例参数
1条回答
网友
1楼 · 发布于 2024-05-16 20:42:38

变量共享方法可能是实现您想要的最简单的方法。在

使用tf.可变范围()和tf.get_变量()您可以重用变量,而不必显式地管理共享。您可以在函数中定义模型,用不同的参数调用它,但在两个调用之间共享模型变量。在

还有一些便利层包装了Tensorflow的变量管理。一种选择是Tensorflow Slim,这使得定义一些模型类(特别是卷积模型)更容易。在

相关问题 更多 >