Я пытаюсь преобразовать простой генератор GAN (из ClusterGAN):
self.name = 'generator'
self.latent_dim = latent_dim
self.n_c = n_c
self.x_shape = x_shape
self.ishape = (128, 7, 7)
self.iels = int(np.prod(self.ishape))
self.verbose = verbose
self.model = nn.Sequential(
# Fully connected layers
torch.nn.Linear(self.latent_dim + self.n_c, 1024),
nn.BatchNorm1d(1024),
nn.LeakyReLU(0.2, inplace=True),
torch.nn.Linear(1024, self.iels),
nn.BatchNorm1d(self.iels),
nn.LeakyReLU(0.2, inplace=True),
# Reshape to 128 x (7x7)
Reshape(self.ishape),
# Upconvolution layers
nn.ConvTranspose2d(128, 64, 4, stride=2, padding=1, bias=True),
nn.BatchNorm2d(64),
nn.LeakyReLU(0.2, inplace=True),
nn.ConvTranspose2d(64, 1, 4, stride=2, padding=1, bias=True),
nn.Sigmoid()
)
Но onnx-coreml не работает с Error while converting op of type: BatchNormalization. Error message: provided number axes 2 not supported
Я думал, что это BatchNorm2d, поэтому Я попытался изменить форму и применить BatchNorm1d, но я получаю ту же ошибку. Какие-нибудь мысли? Я очень удивлен, что у меня возникают проблемы при конвертации такой простой модели, поэтому я предполагаю, что мне не хватает чего-то очевидного.
Я нацеливаюсь на iOS 13 и использую Opset v10 для конвертация onnx.