提交 4b97b620 authored 作者: Frédéric Bastien's avatar Frédéric Bastien 提交者: GitHub

Merge pull request #4947 from ritheshkumar95/docfix

Documentation update: conv2d_grad_wrt_inputs moved to theano.tensor.nnet.abstract_conv
......@@ -93,8 +93,8 @@ of value
slides across the input feature map. At each location, the product between each
element of the kernel and the input element it overlaps is computed and the
results are summed up to obtain the output in the current location. The final
output of this procedure is a matrix called *output feature map* (in green).
results are summed up to obtain the output in the current location. The final
output of this procedure is a matrix called *output feature map* (in green).
This procedure can be repeated using different kernels to form as many output
feature maps (a.k.a. *output channels*) as desired. Note also that to keep the
......@@ -114,7 +114,7 @@ If there are multiple input and output feature maps, the collection of kernels
form a 4D array (``output_channels, input_channels, filter_rows,
filter_columns``). For each output channel, each input channel is convolved with
a distinct part of the kernel and the resulting set of feature maps is summed
elementwise to produce the corresponding output feature map. The result of this
elementwise to produce the corresponding output feature map. The result of this
procedure is a set of output feature maps, one for each output channel, that is
the output of the convolution.
......@@ -627,7 +627,7 @@ for the other elements of the image, giving rise to the following relationship:
.. code-block:: python
input = theano.tensor.nnet.conv2d_grad_wrt_inputs(
input = theano.tensor.nnet.abstract_conv.conv2d_grad_wrt_inputs(
output, filters, filter_shape=(c1, c2, k1, k2), border_mode=(0, 0),
subsample=(1, 1))
# input.shape[2] == output.shape[2] + (k1 - 1)
......@@ -667,7 +667,7 @@ Formally, the following relationship applies for zero padded convolutions:
.. code-block:: python
input = theano.tensor.nnet.conv2d_grad_wrt_inputs(
input = theano.tensor.nnet.abstract_conv.conv2d_grad_wrt_inputs(
output, filters, filter_shape=(c1, c2, k1, k2), border_mode=(p1, p2),
subsample=(1, 1))
# input.shape[2] == output.shape[2] + (k1 - 1) - 2 * p1
......@@ -704,7 +704,7 @@ applies:
.. code-block:: python
input = theano.tensor.nnet.conv2d_grad_wrt_inputs(
input = theano.tensor.nnet.abstract_conv.conv2d_grad_wrt_inputs(
output, filters, filter_shape=(c1, c2, k1, k2), border_mode='half',
subsample=(1, 1))
# input.shape[2] == output.shape[2]
......@@ -740,7 +740,7 @@ the transpose of a fully padded convolution is a non-padded convolution:
.. code-block:: python
input = theano.tensor.nnet.conv2d_grad_wrt_inputs(
input = theano.tensor.nnet.abstract_conv.conv2d_grad_wrt_inputs(
output, filters, filter_shape=(c1, c2, k1, k2), border_mode='full',
subsample=(1, 1))
# input.shape[2] == output.shape[2] - (k1 - 1)
......@@ -799,7 +799,7 @@ of :math:`s`. In that case, the following relationship holds:
.. code-block:: python
input = theano.tensor.nnet.conv2d_grad_wrt_inputs(
input = theano.tensor.nnet.abstract_conv.conv2d_grad_wrt_inputs(
output, filters, filter_shape=(c1, c2, k1, k2), border_mode=(0, 0),
subsample=(s1, s2))
# input.shape[2] == s1 * (output.shape[2] - 1) + k1
......@@ -832,7 +832,7 @@ combining :ref:`Relationship 8 <Relationship8>` and
o_prime1 = s1 * (output.shape[2] - 1) + k1 - 2 * p1
o_prime2 = s2 * (output.shape[3] - 1) + k2 - 2 * p2
input = theano.tensor.nnet.conv2d_grad_wrt_inputs(
input = theano.tensor.nnet.abstract_conv.conv2d_grad_wrt_inputs(
output, filters, input_shape=(b, c1, o_prime1, o_prime2),
filter_shape=(c1, c2, k1, k2), border_mode=(p1, p2),
subsample=(s1, s2))
......@@ -867,7 +867,7 @@ between the :math:`s` different cases that all lead to the same :math:`i'`:
o_prime1 = s1 * (output.shape[2] - 1) + a1 + k1 - 2 * p1
o_prime2 = s2 * (output.shape[3] - 1) + a2 + k2 - 2 * p2
input = theano.tensor.nnet.conv2d_grad_wrt_inputs(
input = theano.tensor.nnet.abstract_conv.conv2d_grad_wrt_inputs(
output, filters, input_shape=(b, c1, o_prime1, o_prime2),
filter_shape=(c1, c2, k1, k2), border_mode=(p1, p2),
subsample=(s1, s2))
......@@ -934,6 +934,6 @@ Quick reference
.. code-block:: python
input = theano.tensor.nnet.conv2d_grad_wrt_inputs(
input = theano.tensor.nnet.abstract_conv.conv2d_grad_wrt_inputs(
output, filters, input_shape=(9, 9), filter_shape=(c1, c2, 4, 4),
border_mode='valid', subsample=(2, 2))
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论