估计器输入函数随机噪声处理

时间:2018-08-10 13:14:27

标签: python tensorflow dataset

在Tensorflow 1.9中使用自定义估算器。 我的估算器训练input_function遵循典型模式,但是我想确保自己正在做我认为正在做的事情。我具有要应用于每个数据集示例的功能。

def add_noise(data, label):
    tile = data['tile']
    sigma_noise = tf.pow(10.0, -SNR/20.0)
    noise = tf.random_normal(shape=tf.shape(tile), mean=0.0, stddev=sigma_noise, dtype=tf.float32) 
    tile += noise
    return {'tile' : tile}, label

因此使用数据集API:

dataset = dataset.shuffle(buffer_size=70001)
dataset = dataset.map(parse_function)
dataset = dataset.map(add_noise)
dataset = dataset.batch(32)
dataset = dataset.repeat()
iterator = dataset.make_one_shot_iterator()

我的函数add_noise是否在每个时期都应用于整个数据集,以便每个输出示例在训练过程中都无限期地对其应用新的随机噪声?

谢谢大家:)

1 个答案:

答案 0 :(得分:0)

来自Sub SendVbaList() Dim arrIns(1) As MyDll.Object Dim arrRes As Variant Dim DLL As MyDll.Func Dim OBJ As MyDll.Object Set DLL = New MyDll.Func Set OBJ(1) = New MyDll.Object OBJ(0).String = "A" OBJ(0).Int = 1 OBJ(1).String = "B" OBJ(1).Int = 2 arrRes = DLL.InsertVbaList(arrIns) Debug.Print(Ubound(arrRes)) End Sub 方法的TensorFlow tf.data.Dataset documentation

map
     

在此数据集的元素之间映射map( map_func, num_parallel_calls=None )

     

此转换将map_func应用于此数据集的每个元素,   并在其中返回包含转换后元素的新数据集   与输入中显示的顺序相同。

因此来自map_func的数据集仅应用了一次随机噪声,因此,从dataset.map(add_noise)返回的迭代器仅应用了一次随机噪声。如果在每个时期之后重复执行代码,在其中混洗数据并应用随机噪声等,那么新的随机噪声将应用于每个时期,这正是您想要的。