相关疑难解决方法(0)

Tensorflow:用Python编写Op

我想用Python写一个Op.本教程仅解释如何使用Python包装器在c ++中执行此操作. https://www.tensorflow.org/versions/master/how_tos/adding_an_op/index.html#adding-a-new-op

我怎样才能在Python中完全编写它?

tensorflow

15
推荐指数
2
解决办法
8155
查看次数

Tensorflow:如何在python中使用渐变来编写op?

我想在python中编写TensorFlow操作,但我希望它是可微分的(能够计算渐变).

这个问题询问如何在python中编写一个op,答案建议使用py_func(没有渐变):Tensorflow:用Python编写一个Op

TF文档描述了如何仅从C++代码添加操作:https://www.tensorflow.org/versions/r0.10/how_tos/adding_an_op/index.html

在我的情况下,我正在进行原型设计,所以我不关心它是否在GPU上运行,我不关心它是否可以从TF python API以外的任何东西使用.

python neural-network gradient-descent tensorflow

10
推荐指数
1
解决办法
5089
查看次数

如何在Tensorflow中将向量转换为单位向量

这是一个非常简单的问题,我似乎无法弄清楚.我正在使用一个形状的输出张量[100,250].我希望能够在百位的任何位置访问250维数组并单独修改它们.我发现的tensorflow数学工具要么对整个张量进行元素修改或标量修改.但是,我试图对张量的子集进行标量修改.

编辑:

这是我想用tensorflow方法重新创建的numpy代码:

update = sess.run(y, feed_dict={x: batch_xs})
for i in range(len(update)):
        update[i] = update[i]/np.sqrt(np.sum(np.square(update[i])))
        update[i] = update[i] * magnitude
Run Code Online (Sandbox Code Playgroud)

这个for循环遵循250-D而不是3-D的公式 单位向量公式,它是for循环的第一行 .然后,我将每个单位向量乘以幅度,将其重新塑造成我想要的长度.

所以这里更新是numpy [100,250]维输出.我想将每个250维向量转换为其单位向量.这样我就可以将其长度改为我选择的幅度.使用这个numpy代码,如果我运行我的train_step并将update传递给我的一个占位符

sess.run(train_step, feed_dict={x: batch_xs, prediction: output}) 
Run Code Online (Sandbox Code Playgroud)

它返回错误:

No gradients provided for any variable
Run Code Online (Sandbox Code Playgroud)

这是因为我在numpy中完成了数学运算并将其移植回tensorflow. 是一个相关的stackoverflow问题,没有得到解答.

tf.nn.l2_normalize非常接近我所期待的,但是它也把通过的平方根的最大平方和.而我试图将每个向量除以它自己的平方和.

谢谢!

python numpy tensorflow

5
推荐指数
1
解决办法
4034
查看次数