我正在调查在PyTorch中使用具有梯度惩罚的Wasserstein GAN,但始终得到大的、正的发电机损失,并随着时间的推移而增加。我大量借鉴了,但我使用的是中使用的鉴别器和生成器损失,因为如果我尝试使用Caogang实现中使用的one和mone参数调用.backward(),就会得到Invalid gradient at index 0 - expected shape[] but got [1]。
我在一个增强的WikiArt数据集(>400k 64x64图像)和CIFAR-10上进行训练,并得到了一个正常的WGAN (带权重裁剪),即它在25个时期后产生可以通过的图像,尽管D和G
我有一个CNN,它的基本结构如下,
卷积层->全球平均池->平坦->密集->输出
我拥有的网络是独立于输入大小的,所以我可以在不同大小的输入上使用它。但是,全局平均池操作使用输入大小来平均一个通道中的所有值。例如,如果我对图像进行零点处理以改变其输入大小,则在全局平均池之后得到一个不同的向量。因此,我考虑使用和池代替,因为它是独立于输入大小(我也不确定是否使用和池的方式)。因为在PyTorch中没有内置的和池(据我所知),所以我实现了如下,
def forward(self, x):
features = self.features(x)
out = F
我用Python实现了一个简单的CNN程序,它可以机器学习MNIST数据集。我已经实现了3层:
ConvPoolLayer,这就意味着集合。
FullyConnectedLayer,它是一个完全连接的隐藏层。
SoftmaxLayer,它基本上给出了网络的最大输出
在ConvPoolLayer中,我实现了意味着池。下面是代码行,它确实意味着在前向传播期间进行池操作:
# 'activation' is a numpy array of 3D activations from the convolutional code (not shown here)
我有一个相当简单的卷积网络,它本质上只是学习所有y_values的平均值。对于每一段数据,不管输入是什么,它都输出相同的东西。有人知道这是怎么回事吗? output of the model.predict function model.compile and model.fit function the mean and the pre-processing for the actual outputs