提交 e5904c5e authored 作者: Olivier Delalleau's avatar Olivier Delalleau

Rewrote example of usage of verify_grad, which was incomplete and possibly confusing

上级 e6fab998
......@@ -372,7 +372,8 @@ the given tolerance.
The parameters are as follows:
* op: something that behaves like an Op instance with a single output
(can be a python function combining multiple ops)
(can be for instance a python function combining multiple ops, or calling
an op with some of the inputs being fixed to specific values).
* pt: the list of numpy.ndarrays to use as inputs to the op
......@@ -387,11 +388,21 @@ The parameters are as follows:
Here is an example showing how to use verify_grad:
>>> def test_flatten_outdimNone():
>>> a = dmatrix()
>>> # ...
>>> a_val = theano._asarray([[0,1,2],[3,4,5]], dtype='float64')
>>> # ...
>>> tensor.verify_grad(Flatten(), [a_val])
>>> # Testing gradient w.r.t. all inputs of an op (in this example the op
>>> # being used is Flatten(), which takes a single input).
>>> a_val = numpy.asarray([[0,1,2],[3,4,5]], dtype='float64')
>>> tensor.verify_grad(tensor.Flatten(), [a_val])
>>> # Testing gradient w.r.t. to a subset of an op's inputs. This is useful
>>> # in particular when the gradient w.r.t. some of the inputs cannot be
>>> # computed by finite difference (e.g. for discrete inputs), which would
>>> # cause verify_grad to crash.
>>> op = tensor.nnet.crossentropy_softmax_argmax_1hot_with_bias
>>> def op_with_fixed_y_idx(x, b):
>>> # Note that this op has multiple outputs: we need to pick only one.
>>> return op(x, b, y_idx=numpy.asarray([0, 2]))[0]
>>> x_val = numpy.asarray([[-1, 0, 1], [3, 2, 1]], dtype='float64')
>>> b_val = numpy.asarray([1, 2, 3], dtype='float64')
>>> tensor.verify_grad(op_with_fixed_y_idx, [x_val, b_val])
.. note::
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论