我想知道在为可变尺寸输入创建TensorFlow占位符(与固定大小的输入)相比,是否存在任何实质性的缺点(例如,关于计算效率,内存...)?创建TensorFlow占位符可变大小还是固定大小输入有什么缺点吗?
说,我做小批量的学习,并与其中I假设固定的batch_size前期的占位符初始化图形:
tf.placeholder(..., shape=[batch_size, ...])
可替换地,我可以使得它接受可变大小的输入初始化所述占位符变量:
tf.placeholder(..., shape=[None, ...])
我不是那个熟悉的低水平tensorflow引擎盖下的实现,但不会后者必须检查尺寸,分配内存,并在每个迭代创建新的阵列占的情况米y训练期间小批量大小发生变化?那么,根据实现情况,如果我使用固定批处理维度,那么这不会在计算上浪费吗?
感谢您的这个好的和全面的解释!因此,对于大型(长途火车)车型,它可能会更有效地修复批量大小。但是,对于验证和评估(验证和测试集合),必须有一个并行图表,这个图表可以提供训练图的变量,这可能会超过优势。 – Sebastian
这可能是真的。要确定相对性能是非常棘手的,但是我们已经看到使用静态形状信息的运行时间提高了5%,所以如果你有一个长期运行的程序,可能需要使用单独的程序进行训练/尽可能多地评估静态信息。 – mrry