garage.tf.models.cnn

CNN in TensorFlow.

cnn(input_var, input_dim, filters, strides, name, padding, hidden_nonlinearity=tf.nn.relu, hidden_w_init=tf.initializers.glorot_uniform(seed=deterministic.get_tf_seed_stream()), hidden_b_init=tf.zeros_initializer())

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.

  • input_dim (Tuple[int, int, int]) – Dimensions of unflattened input, which means [in_height, in_width, in_channels]. If the last 3 dimensions of input_var is not this shape, it will be reshaped.

  • 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, input_dim, filters, strides, name, pool_shapes, pool_strides, padding, hidden_nonlinearity=tf.nn.relu, hidden_w_init=tf.initializers.glorot_uniform(seed=deterministic.get_tf_seed_stream()), hidden_b_init=tf.zeros_initializer())

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.

  • input_dim (Tuple[int, int, int]) – Dimensions of unflattened input, which means [in_height, in_width, in_channels]. If the last 3 dimensions of input_var is not this shape, it will be reshaped.

  • 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