(
self,
input_shape,
filter_shape, # pylint: disable=redefined-builtin
padding,
data_format=None,
strides=None,
dilation_rate=None,
name=None)
| 165 | """ |
| 166 | |
| 167 | def __init__( |
| 168 | self, |
| 169 | input_shape, |
| 170 | filter_shape, # pylint: disable=redefined-builtin |
| 171 | padding, |
| 172 | data_format=None, |
| 173 | strides=None, |
| 174 | dilation_rate=None, |
| 175 | name=None): |
| 176 | filter_shape = filter_shape.with_rank(input_shape.ndims) |
| 177 | self.padding = padding |
| 178 | self.name = name |
| 179 | input_shape = input_shape.with_rank(filter_shape.ndims) |
| 180 | if input_shape.ndims is None: |
| 181 | raise ValueError("Rank of convolution must be known") |
| 182 | if input_shape.ndims < 3 or input_shape.ndims > 5: |
| 183 | raise ValueError( |
| 184 | "`input` and `filter` must have rank at least 3 and at most 5") |
| 185 | conv_dims = input_shape.ndims - 2 |
| 186 | if strides is None: |
| 187 | strides = [1] * conv_dims |
| 188 | elif len(strides) != conv_dims: |
| 189 | raise ValueError("len(strides)=%d, but should be %d" % (len(strides), |
| 190 | conv_dims)) |
| 191 | self.dilations = dilation_rate |
| 192 | |
| 193 | if conv_dims == 1: |
| 194 | # conv1d uses the 2-d data format names |
| 195 | if data_format is None: |
| 196 | data_format = "NWC" |
| 197 | elif data_format not in {"NCW", "NWC", "NCHW", "NHWC"}: |
| 198 | raise ValueError("data_format must be \"NWC\" or \"NCW\".") |
| 199 | self.strides = strides[0] |
| 200 | self.data_format = data_format |
| 201 | self.conv_op = self._conv1d |
| 202 | elif conv_dims == 2: |
| 203 | if data_format is None or data_format == "NHWC": |
| 204 | data_format = "NHWC" |
| 205 | strides = [1] + list(strides) + [1] |
| 206 | elif data_format == "NCHW": |
| 207 | strides = [1, 1] + list(strides) |
| 208 | else: |
| 209 | raise ValueError("data_format must be \"NHWC\" or \"NCHW\".") |
| 210 | self.strides = strides |
| 211 | self.data_format = data_format |
| 212 | self.conv_op = conv2d |
| 213 | elif conv_dims == 3: |
| 214 | if data_format is None or data_format == "NDHWC": |
| 215 | strides = [1] + list(strides) + [1] |
| 216 | elif data_format == "NCDHW": |
| 217 | strides = [1, 1] + list(strides) |
| 218 | else: |
| 219 | raise ValueError("data_format must be \"NDHWC\" or \"NCDHW\". Have: %s" |
| 220 | % data_format) |
| 221 | channel_index = 1 if data_format.startswith("NC") else 4 |
| 222 | self.dilations = _get_sequence(dilation_rate, 3, channel_index, |
| 223 | "dilations") |
| 224 | self.strides = strides |
nothing calls this directly
no test coverage detected