garage.tf.models.cnn module

CNN in TensorFlow.

cnn(input_var, filters, strides, name, padding, hidden_nonlinearity=<function relu>, hidden_w_init=<tensorflow.python.ops.init_ops_v2.GlorotUniform object>, hidden_b_init=<tensorflow.python.ops.init_ops_v2.Zeros object>)[source]

Convolutional neural network (CNN).

Note

Based on ‘NHWC’ data format: [batch, height, width, channel].

Parameters:
  • input_var (tf.Tensor) – Input tf.Tensor to the CNN.
  • filters (Tuple[Tuple[int, Tuple[int, int]], ..]) – Number and dimension of filters. For example, ((3, (3, 5)), (32, (3, 3))) means there are two convolutional layers. The filter for the first layer have 3 channels and its shape is (3 x 5), while the filter for the second layer have 32 channels and its shape is (3 x 3).
  • strides (tuple[int]) – The stride of the sliding window. For example, (1, 2) means there are two convolutional layers. The stride of the filter for first layer is 1 and that of the second layer is 2.
  • name (str) – Network name, also the variable scope.
  • padding (str) – The type of padding algorithm to use, either ‘SAME’ or ‘VALID’.
  • hidden_nonlinearity (callable) – Activation function for intermediate dense layer(s). It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • hidden_w_init (callable) – Initializer function for the weight of intermediate dense layer(s). The function should return a tf.Tensor.
  • hidden_b_init (callable) – Initializer function for the bias of intermediate dense layer(s). The function should return a tf.Tensor.
Returns:

The output tf.Tensor of the CNN.

Return type:

tf.Tensor

cnn_with_max_pooling(input_var, filters, strides, name, pool_shapes, pool_strides, padding, hidden_nonlinearity=<function relu>, hidden_w_init=<tensorflow.python.ops.init_ops_v2.GlorotUniform object>, hidden_b_init=<tensorflow.python.ops.init_ops_v2.Zeros object>)[source]

Convolutional neural network (CNN) with max-pooling.

Note

Based on ‘NHWC’ data format: [batch, height, width, channel].

Parameters:
  • input_var (tf.Tensor) – Input tf.Tensor to the CNN.
  • filters (Tuple[Tuple[int, Tuple[int, int]], ..]) – Number and dimension of filters. For example, ((3, (3, 5)), (32, (3, 3))) means there are two convolutional layers. The filter for the first layer have 3 channels and its shape is (3 x 5), while the filter for the second layer have 32 channels and its shape is (3 x 3).
  • strides (tuple[int]) – The stride of the sliding window. For example, (1, 2) means there are two convolutional layers. The stride of the filter for first layer is 1 and that of the second layer is 2.
  • name (str) – Model name, also the variable scope of the cnn.
  • pool_shapes (tuple[int]) – Dimension of the pooling layer(s). For example, (2, 2) means that all the pooling layers have shape (2, 2).
  • pool_strides (tuple[int]) – The strides of the pooling layer(s). For example, (2, 2) means that all the pooling layers have strides (2, 2).
  • padding (str) – The type of padding algorithm to use, either ‘SAME’ or ‘VALID’.
  • hidden_nonlinearity (callable) – Activation function for intermediate dense layer(s). It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • hidden_w_init (callable) – Initializer function for the weight of intermediate dense layer(s). The function should return a tf.Tensor.
  • hidden_b_init (callable) – Initializer function for the bias of intermediate dense layer(s). The function should return a tf.Tensor.
Returns:

The output tf.Tensor of the CNN.

Return type:

tf.Tensor