Pin*_*hio 3 numpy machine-learning neural-network conv-neural-network tensorflow
我正在通过TensorFlow中的API查看并注意到python和numpy中已经存在的许多数学运算已经重新实现(或者至少给出了张量流接口).例如:
有这么好的理由吗?
我一直在搜索他们的页面,但无法找到他们为什么这样做.
我确实有一些猜测.我的一个主要猜测是,他们可能希望这些操作对获得实现的神经网络图有一些反向传播效应.换句话说,实施他们的衍生物.这是原因之一吗?(希望我知道如何检查我的猜测是否正确)
例如,在线性回归的一个最基本的例子中,一个定义了想要实现的预测函数:
product = tf.matmul(x,W)
y = product + b
Run Code Online (Sandbox Code Playgroud)
代替
product = tf.matmul(x,W)
y = tf.add(product, b)
Run Code Online (Sandbox Code Playgroud)
不知怎的,第一个实现不会干扰随机梯度下降算法进行训练,所以如果使用numpy或tf.add进行训练可能无关紧要?这是让我感到困惑的一个方面,我何时知道应该使用哪一个.
或者他们是性能原因?或者,如果需要使用GPU,它可以让这些操作访问GPU吗?
您必须了解使用此操作创建张量流图,这意味着它们与numpy函数不同,它们更像是对它们的抽象.
也许您已经注意到必须创建一个会话,然后通过该会话评估函数以获得结果,其中numpy函数直接执行.这是因为这个图及其函数定义了如何写下公式,但要获得特定x(或其他)的结果,您必须为x插入一个值.这是你通过session和eval做的事情.
因此,为了得出结论,你定义了一个带有tensorflow的图形,它是一个更抽象的函数表示,图形也不是在运行时执行的,然后它被定义,它将在你调用eval函数时执行并通过运行会话.
另请注意,您无法直接混合numpy函数和tensorflow函数,但您可以定义自己的tensorflow函数(https://www.tensorflow.org/versions/r0.9/how_tos/adding_an_op/index.html)
顺便说一下,我猜大多数张量流函数都是在引擎盖下使用numpy.:)
| 归档时间: |
|
| 查看次数: |
1023 次 |
| 最近记录: |