pycsamt.ai.nets.cnn1d#

1-D CNN for EM inversion — Puzyrev (2019/2021) architecture.

The input feature vector (log-scaled apparent resistivity + phase, or log-scaled TEM dBz/dt) is treated as a 1-D sequence over frequency/time channels. Three convolutional blocks encode local frequency dependencies; a small fully-connected head maps to the output model parameter vector.

References

Puzyrev, V. et al. (2019). Deep CNNs for 1D inversion of EM data. EAGE Conference 2019.

Puzyrev, V. & Swidinsky, A. (2021). Inversion of 1D frequency- and time-domain EM data with CNNs. Computers & Geosciences, 149, 104681.

Classes

CNN1DNet(n_features, n_out, *[, channels, ...])

Factory wrapper — call build() to get an nn.Module.

class pycsamt.ai.nets.cnn1d.CNN1DNet(n_features, n_out, *, channels=(32, 64, 128), kernel_size=5, dropout=0.3)[source]#

Bases: object

Factory wrapper — call build() to get an nn.Module.

Use EMInverter1D instead of instantiating this class directly.

Parameters:
  • n_features (int) – Length of the input feature vector.

  • n_out (int) – Length of the output parameter vector (2*n_layers - 1).

  • channels (sequence of int) – Number of filters in each convolutional block.

  • kernel_size (int) – Convolutional kernel width (same padding applied).

  • dropout (float) – Dropout probability in the FC head.

build()[source]#