Python MNIST数据集上keras上的i-RevNet
我想在keras上的MNIST数据集上实现I-RevNet,并从I-RevNet的输出生成原始的28*28输入图像,但我没有任何线索。我能找到的在线资源都是基于tensorflow的。重要的是这篇论文-I-REVNET:DEEP inversible NETWORKS和这篇git 阅读上述论文时,i-RevNets中的关键组件是同胚层,位于拓扑和神经网络之间的链接cf-神经网络、流形和拓扑(搜索“同胚”) 同胚层在Python MNIST数据集上keras上的i-RevNet,python,keras,Python,Keras,我想在keras上的MNIST数据集上实现I-RevNet,并从I-RevNet的输出生成原始的28*28输入图像,但我没有任何线索。我能找到的在线资源都是基于tensorflow的。重要的是这篇论文-I-REVNET:DEEP inversible NETWORKS和这篇git 阅读上述论文时,i-RevNets中的关键组件是同胚层,位于拓扑和神经网络之间的链接cf-神经网络、流形和拓扑(搜索“同胚”) 同胚层在类irevnet_块(nn.Module)中实现,请注意,没有丢弃信息的操作,如最
类irevnet_块(nn.Module)
中实现,请注意,没有丢弃信息的操作,如最大池、平均、(输出层除外),仅应用批标准化(),relu也是局部严格线性的
在keras中如何实现这一点,只需将层堆叠到同胚层中:
homeomorphic layer -> NO POOLING, ... LAYERS
model.add(Dense(64, init='uniform'))
model.add(Activation('relu'))
model.add(BatchNormalization())
中的其余代码,即def inverse(self,x)
或def forward(self,x)
,可使用中的keras函数进行复制。Cf在merge
和split
功能上,它们使用torch.cat
和torch.split
,这两种keras等价物都在其中