小编Ami*_*mir的帖子

为什么matplotlib需要在plt.scatter()之前设置日志比例而不是plt.plot()?

我在这个有用的答案中发现plt.scatter(),plt.plot()当在y轴上使用对数刻度时, 表现不同.

有了plot,我可以在使用之前随时更改为日志plt.show(),但必须在使用分散方法之前预先设置日志.

这只是matplotlib中的一个历史性且不可逆转的工件,还是属于"意外行为"类别?

在此输入图像描述

import matplotlib.pyplot as plt

X = [0.997, 2.643, 0.354, 0.075, 1.0, 0.03, 2.39, 0.364, 0.221, 0.437]
Y = [15.487507, 2.320735, 0.085742, 0.303032, 1.0, 0.025435, 4.436435,
     0.025435, 0.000503, 2.320735]

plt.figure()

plt.subplot(2,2,1)
plt.scatter(X, Y)
plt.xscale('log')
plt.yscale('log')
plt.title('scatter - scale last')   

plt.subplot(2,2,2)
plt.plot(X, Y)
plt.xscale('log')
plt.yscale('log')
plt.title('plot - scale last')   

plt.subplot(2,2,3)
plt.xscale('log')
plt.yscale('log')
plt.scatter(X, Y)
plt.title('scatter - scale first')   


plt.subplot(2,2,4)
plt.xscale('log')
plt.yscale('log')
plt.plot(X, Y)
plt.title('plot - scale …
Run Code Online (Sandbox Code Playgroud)

python matplotlib python-2.7

19
推荐指数
1
解决办法
2618
查看次数

Tensorflow 梯度返回 nan 或 Inf

我正在尝试使用tensorflow和keras实现WGAN-GP模型(用于来自kaggle的信用卡欺诈数据)。

我主要遵循keras 网站中提供的示例代码以及互联网上的其他几个示例代码(但将它们从图像更改为我的数据),并且非常简单。

但是当我想更新批评家时,批评家权重的损失梯度nan在几批之后就变成了全部。这导致批评者的权重变成nan,然后生成器的权重变成nan,...所以一切都变成nan

在此输入图像描述

我使用tf.debugging.enable_check_numerics后发现问题的出现是因为-Inf经过一些迭代后a出现在梯度中。

这与损失中的梯度惩罚项直接相关,因为当我删除它时,问题就消失了。

请注意,它gp本身不是nan,但是当我获得损失批评家权重的梯度(c_grads在下面的代码中)时,它包含-Inf并以某种方式变成全部nan

我检查了数学和网络架构是否存在可能的错误(例如梯度消失的概率等),并且我花了好几个小时检查代码是否存在可能的错误。但我被困住了。

如果有人能找到问题的根源,我将非常感激

注意: 请记住,评论家的输出和损失函数与原始论文略有不同(因为我试图使其成为有条件的),但这与问题无关,因为正如我之前所说,整个问题消失了当我刚刚删除梯度惩罚项时

这是我的批评者:

critic = keras.Sequential([
        keras.layers.Input(shape=(x_dim,), name='c-input'),
        keras.layers.Dense(64, kernel_initializer=keras.initializers.he_normal(), name='c-hidden-1'),
        keras.layers.LeakyReLU(alpha=0.25, name='c-activation-1'),
        keras.layers.Dense(32, kernel_initializer=keras.initializers.he_normal(), name='c-hidden-2'),
        keras.layers.LeakyReLU(alpha=0.25, name='c-activation-2'),
        keras.layers.Dense(2, activation='tanh', name='c-output')
    ], name='critic')
Run Code Online (Sandbox Code Playgroud)

这是我的梯度惩罚函数:

def gradient_penalty(self, batch_size, x_real, x_fake):
    # get the random linear interpolation of real and fake data (x hat)
    alpha = tf.random.uniform([batch_size, 1], …
Run Code Online (Sandbox Code Playgroud)

python deep-learning keras tensorflow generative-adversarial-network

1
推荐指数
1
解决办法
2301
查看次数

gulp 中的 rev-manifest.json 文件是什么?

我是 Gulp 的新手。谁能解释一下rev-manifest.jsongulp 中的文件是什么?

gulp

0
推荐指数
1
解决办法
1898
查看次数