Tensorflow:tf.nn.conv2d实际在哪里执行?

阿里兹

我对Tensorflow的实现感到好奇tf.nn.conv2d(...)要称呼它,只需运行tf.nn.conv2d(...)但是,我要去尝试发现它的执行位置。代码如下(其中箭头指示最终调用的函数):

tf.nn.conv2d(...) -> tf.nn_ops.conv2d(...) -> tf.gen_nn_ops.conv2d(...) -> _op_def_lib.apply_op("Conv2D", ...) -> ?

我熟悉Tensorflow的LSTM的实现以及熟悉的功能,可以轻松地操纵它们。执行conv2d()计算的函数是用Python编写的吗?如果是,它在哪里?我可以看到大步在哪里以及如何执行吗?

ry

TL; DR:的实现tf.nn.conv2d()是用C ++编写的,它使用Eigen(在CPU上)或cuDNN库(在GPU上)调用优化的代码。您可以在此处找到实现

您在问题中提到的功能链(从tf.nn.conv2d()至上)是用于构建TensorFlow图的Python函数,但这些函数不会调用实现。回想一下,在TensorFlow中,您首先构建一个符号图,然后执行它

tf.nn.conv2d()仅当您调用Session.run()传递Tensor值取决于某些卷积结果的才会执行的实现例如:

input = tf.placeholder(tf.float32)
filter = tf.Variable(tf.truncated_normal([5, 5, 3, 32], stddev=0.1)
conv = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='SAME')

result = sess.run(conv, feed_dict={input: ...})  # <== Execution happens here.

调用sess.run(...)告诉TensorFlow运行所有需要计算的值的运算conv,包括卷积本身。从这里到实现的路径有些复杂,但是需要执行以下步骤:

  1. sess.run()调用TensorFlow后端以获取的值conv
  2. 后端会修剪计算图以找出必须执行的节点,然后将节点放置在适当的设备(CPU或GPU)上。
  3. 每个设备被指示执行其子,用执行
  4. 执行程序最终tensorflow::OpKernel通过调用卷积运算符的Compute()方法来调用对应于卷积运算符的

"Conv2D"OpKernel实现这里,其Compute()方法是在这里由于此操作对于许多工作负载而言对性能至关重要,因此实现起来相当复杂,但是基本思想是将计算分流到Eigen Tensor库(如果在CPU上运行)或cuDNN的优化GPU实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Tensorflow:tf.nn.separable_conv2d做什么?

来自分类Dev

tensorflow tf.nn.conv2d 中的特征数

来自分类Dev

Tensorflow - tf.nn.conv2D() 中的权重值是否发生了变化?

来自分类Dev

tf.nn.conv2d 命令的输入

来自分类Dev

tf.nn.ctc_beam_search_decoder()不支持TensorFlow2中的GPU吗?

来自分类Dev

TensorFlow中的tf.nn.sigmoid实现

来自分类Dev

tf.nn.conv2d如何使用偶数大小的过滤器?

来自分类Dev

来自tf.nn.conv2d和keras.layers.Conv2D的不相等输出

来自分类Dev

导入tf.nn.rnn_cell中的Tensorflow错误

来自分类Dev

我可以简单地用 tf.layer.max_pooling 替换 tf.nn.conv2d 层吗?

来自分类Dev

Tensorflow NN输入尺寸

来自分类Dev

Tensorflow nn.conv3d()和max_pool3d

来自分类Dev

Tensorflow nn.conv3d()和max_pool3d

来自分类Dev

conv2d是否使用随机过滤器?这样对NN有好处吗?

来自分类Dev

在Tensorflow中,如何解开tf.nn.max_pool_with_argmax获得的扁平化索引?

来自分类Dev

TensorFlow的tf.nn.dynamic_rnn运算符的输入张量如何构造?

来自分类Dev

如何在TensorFlow中使用tf.nn.embedding_lookup_sparse?

来自分类Dev

如何在Tensorflow Keras中使用tf.nn.sampled_softmax_loss?

来自分类Dev

TensorFlow的tf.nn.dynamic_rnn运算符的输入张量如何构造?

来自分类Dev

TensorFlow 2.0如何从tf.keras.layers层获取可训练变量,例如Conv2D或Dense

来自分类Dev

Tensorflow:获得正确的NN精度

来自分类Dev

tf.nn.embedding_lookup_sparse 3D稀疏张量输入

来自分类Dev

在不同形状的向量集合上使用 tf.nn.l2_loss

来自分类Dev

tf.nn.softmax()在TF版本2.3.1和2.4.0中的执行方式是否有所不同?

来自分类Dev

在TensorFlow中编写类似Conv2D的操作

来自分类Dev

Tensorflow Keras Conv2D多个过滤器

来自分类Dev

tensorflow conv2d参数数量

来自分类Dev

tensorflow中conv2d的顺序输出是什么?

来自分类Dev

在 Tensorflow 中查找 conv2d 层的权重

Related 相关文章

  1. 1

    Tensorflow:tf.nn.separable_conv2d做什么?

  2. 2

    tensorflow tf.nn.conv2d 中的特征数

  3. 3

    Tensorflow - tf.nn.conv2D() 中的权重值是否发生了变化?

  4. 4

    tf.nn.conv2d 命令的输入

  5. 5

    tf.nn.ctc_beam_search_decoder()不支持TensorFlow2中的GPU吗?

  6. 6

    TensorFlow中的tf.nn.sigmoid实现

  7. 7

    tf.nn.conv2d如何使用偶数大小的过滤器?

  8. 8

    来自tf.nn.conv2d和keras.layers.Conv2D的不相等输出

  9. 9

    导入tf.nn.rnn_cell中的Tensorflow错误

  10. 10

    我可以简单地用 tf.layer.max_pooling 替换 tf.nn.conv2d 层吗?

  11. 11

    Tensorflow NN输入尺寸

  12. 12

    Tensorflow nn.conv3d()和max_pool3d

  13. 13

    Tensorflow nn.conv3d()和max_pool3d

  14. 14

    conv2d是否使用随机过滤器?这样对NN有好处吗?

  15. 15

    在Tensorflow中,如何解开tf.nn.max_pool_with_argmax获得的扁平化索引?

  16. 16

    TensorFlow的tf.nn.dynamic_rnn运算符的输入张量如何构造?

  17. 17

    如何在TensorFlow中使用tf.nn.embedding_lookup_sparse?

  18. 18

    如何在Tensorflow Keras中使用tf.nn.sampled_softmax_loss?

  19. 19

    TensorFlow的tf.nn.dynamic_rnn运算符的输入张量如何构造?

  20. 20

    TensorFlow 2.0如何从tf.keras.layers层获取可训练变量,例如Conv2D或Dense

  21. 21

    Tensorflow:获得正确的NN精度

  22. 22

    tf.nn.embedding_lookup_sparse 3D稀疏张量输入

  23. 23

    在不同形状的向量集合上使用 tf.nn.l2_loss

  24. 24

    tf.nn.softmax()在TF版本2.3.1和2.4.0中的执行方式是否有所不同?

  25. 25

    在TensorFlow中编写类似Conv2D的操作

  26. 26

    Tensorflow Keras Conv2D多个过滤器

  27. 27

    tensorflow conv2d参数数量

  28. 28

    tensorflow中conv2d的顺序输出是什么?

  29. 29

    在 Tensorflow 中查找 conv2d 层的权重

热门标签

归档