我在Tensorflow 2中训练一个去噪自动编码器,运行时间的一部分花在CPU上屏蔽一部分输入数据,随机选择要屏蔽的索引,然后将它们的值设置为零。这是我的掩蔽函数,该掩蔽在每个历元开始时以不同的v值重复:
import numpy as np
def masking_noise(X, v):
X_noise = X.copy()
n_samples = X.shape[0]
n_features = X.shape[1]
v = int(np.round(n_features*v))
for i in range(n_samples):
mask = np.random.choice(n_features, v, replace=False)
for m in mask:
X_noise[i][m] = np.repeat(0.,X.shape[2])
return X_noise
以下是一个玩具示例:
a = np.array([[[1., 0.],
[1., 0.],
[1., 0.],
[1., 0.],
[0., 1.]],
[[1., 0.],
[1., 0.],
[1., 0.],
[1., 1.],
[0., 1.]],
[[1., 0.],
[1., 0.],
[1., 0.],
[1., 0.],
[1., 1.]]])
masking_noise(a, 0.40)
输出:
array([[[1., 0.],
[0., 0.],
[1., 0.],
[1., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.],
[1., 0.],
[1., 1.],
[0., 1.]],
[[1., 0.],
[1., 0.],
[1., 0.],
[0., 0.],
[0., 0.]]])
我的问题是,如何在Tensorflow中执行相同的掩蔽操作
我想我终于找到了答案,使用Tensorflow 2调试这个问题很容易,所以当我从TF1更改为TF2时,我能够解决这个问题:
然后我可以这样运行它:
结果如下所示:
相关问题 更多 >
编程相关推荐