我正在使用Python3.7.7。和Tensorflow 2.1.0。
我正在使用一个来自been网络的编码器,我一直使用编码器作为一个函数,将图像作为一个参数传递,以获得一个输出。但是现在我发现我可以使用predict方法:
support_set_embeddings = encoder(X_train)
support_set_embeddings_predict = encoder(X_train)
print("Embeddings type: ", type(support_set_embeddings))
print("Embeddings predict type: ", type(support_set_embeddings_predict))
print("Support set embeddings shape: ", support_set_embeddings.shape)
print("Embeddings predict shape: ", support_set_embeddings_predict.shape)有了这个输出:
Embeddings type: <class 'tensorflow.python.framework.ops.EagerTensor'>
Embeddings predict type: <class 'tensorflow.python.framework.ops.EagerTensor'>
Support set embeddings shape: (5, 12, 12, 512)
Embeddings predict shape: (5, 12, 12, 512)这两种方法之间有什么不同(作为参数或预测)?
发布于 2020-09-10 15:44:49
在预测函数中,分批计算。但是,如果您有较小的数据,那么函数调用更适合于更快的执行。
这是Tensorflow文档中的确切声明:
计算是分批进行的。该方法是针对大规模输入的性能而设计的。对于适合一批的少量输入,建议直接使用调用来加快执行速度,例如,模型(X)或模型(x,training=False)
请参阅完整的文档这里
https://stackoverflow.com/questions/63832863
复制相似问题