在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是否在每个时期都应用于整个数据集,以便每个输出示例在训练过程中都无限期地对其应用新的随机噪声?
谢谢大家:)
答案 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)
返回的迭代器仅应用了一次随机噪声。如果在每个时期之后重复执行代码,在其中混洗数据并应用随机噪声等,那么新的随机噪声将应用于每个时期,这正是您想要的。