【问题标题】:Matrix value not needed for Lop?Lop 不需要矩阵值?
【发布时间】:2016-05-27 02:40:48
【问题描述】:

在theano导数教程中:

http://deeplearning.net/software/theano/tutorial/gradients.html#tutcomputinggrads

Lop 的示例在点积中没有 W 矩阵的显式值的情况下工作。而且,事实上,这种情况下的偏导数确实会删除 W 的分量的值,因此不需要它们。

但是,用 Rop 尝试类似的事情会引发错误:

theano.gof.fg.MissingInputError: ("用于计算点的图形输入(Elemwise{second,no_inplace}.0, ) 未提供且未指定值。

这有什么不同?

【问题讨论】:

    标签: theano


    【解决方案1】:

    Theano 会尝试优化计算图,但并不总是有效。

    在 Lop 示例中,Theano 可以检测到我们实际上并不需要那个 W,但是当更改为 Rop 时它就不能了。

    洛普例子:

    W = T.dmatrix('W')
    v = T.dvector('v')
    x = T.dvector('x')
    y = T.dot(x, W)
    VJ = T.Lop(y, W, v)
    f = theano.function([v, x], VJ)
    f([2, 2], [0, 1])
    

    如果我只是将y = T.dot(x, W) 更改为y = T.dot(x, W**1),Theano 将无法进行优化并向我抛出相同的错误消息,说我没有提供足够的参数。

    实际上在 Rop 示例中,如果我们更改赋予 W 的值,它根本不会影响结果,因为 Theano 未能优化它。

    附言我发现 Theano 文档有时很不清楚。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多