code: def simple_cnn(actns:Collection[int], kernel_szs:Collection[int]=None,
                 strides:Collection[int]=None, bn=False) -> nn.Sequential:
      "CNN with `conv_layer` defined by `actns`, `kernel_szs` and `strides`, plus batchnorm if `bn`."
      nl = len(actns)-1
      kernel_szs = ifnone(kernel_szs, [3]*nl)
      strides    = ifnone(strides   , [2]*nl)
      layers = [conv_layer(actns[i], actns[i+1], kernel_szs[i], stride=strides[i],
                norm_type=(NormType.Batch if bn and i<(len(strides)-1) else None)) for i in range_of(strides)]
      layers.append(PoolFlatten())
      return nn.Sequential(*layersf simple_cnn(actns:Collection[int], kernel_szs:Collection[int]=None,
                 strides:Collection[int]=None, bn=False) -> nn.Sequential:
      "CNN with `conv_layer` defined by `actns`, `kernel_szs` and `strides`, plus batchnorm if `bn`."
      nl = len(actns)-1
      kernel_szs = ifnone(kernel_szs, [3]*nl)
      strides    = ifnone(strides   , [2]*nl)
      layers = [conv_layer(actns[i], actns[i+1], kernel_szs[i], stride=strides[i],
                norm_type=(NormType.Batch if bn and i<(len(strides)-1) else None)) for i in range_of(strides)]
      layers.append(PoolFlatten())
      return nn.Sequential(*layers)
docs: CNN with `conv_layer` defined by `actns`, `kernel_szs` and `strides`, plus batchnorm if `bn`.