为了账号安全,请及时绑定邮箱和手机立即绑定

在Tensorflow 2.0中使用Numpy操作会影响其性能吗?

在Tensorflow 2.0中使用Numpy操作会影响其性能吗?

DIEA 2022-08-02 17:00:37
我在这里研究转换器代码作为示例。下面的位置编码函数使用 numpy 进行其所有操作。然后在返回结果时将它们转换回TF张量。这种模式是否会影响运行代码时的性能,尤其是在 GPU 上运行代码时?是否建议在实现模型时仅使用 TF 操作?def get_positional_encoding(self, max_len):    """PE_(pos, 2i) = sin(pos/10000^(2i/d_model))    PE_(pos, 2i+1) = cos(pos/10000^(2i/d_model))    """    pos = np.expand_dims(np.arange(0, max_len), axis=1)    div_term = np.array([[1 / np.power(10000, (2 * (i//2) / self.d_model)) for i in range(self.d_model)]])           pos = pos * div_term    pe = np.zeros((max_len, self.d_model))    pe[:, 0:self.d_model//2] = np.sin(pos[:, 0::2])    pe[:, self.d_model//2:] = np.cos(pos[:, 0::2])    pe = np.expand_dims(pe, 0)    print(pe.shape)    return tf.cast(pe, dtype=tf.float32) 
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

是的,它确实会影响性能,这是假设您可以正确执行代码而不会出现任何错误。

一个因素是将值从CPU传递/复制到GPU所需的时间,这会增加大量的开销时间,矩阵越大。

Tensorflow是为在GPU中运行的而构建的,因此当您在代码的每个部分中使用所有Tensorflow操作时,您将看到性能的显着提高,只是因为将值从CPU传递到GPU所需的时间,这还不考虑使用Tensors进行计算时应用的优化。


查看完整回答
反对 回复 2022-08-02
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信