tower_loss()函数调用以下代码来构建卷积图(第78行)
logits = cifar10.inference(images)
在内部,inference()接受图像输入并构建神经网络图并创建输出logits。我的问题是,显然,tower_loss()将在真实的训练中被调用数千次,因此完全相同的结构和操作但不同图像的图形构建将一次又一次地重复。这会有效吗?为什么不通过构建图形只创建一次图形,比如build_tower(),然后通过feed_dict
提供不同的图像这发生在我身上的另一个问题,就是tensorflow.run(ops,feed_dict)中的ops图是否是一个缓存对象,我不知道这里的下划线实现,但是如果图形不是缓存对象,那么这就是相当于每次被调用时重建ops图;如果它是缓存的,那么multi gpu cifar10代码似乎非常低效,因为它重复重建同样的东西。