具有相同输入和输出的模型中的生成器数据加载器
Generator dataloader in models with the same inputs and outputs
我正在尝试实现一个输出与其输入相同的模型。这是一个广泛模型的简单部分,我删除了复杂的部分。我写了一个生成随机数的数据加载器。
def random_generator():
tf.random.set_seed(43)
while True:
yield tf.random.uniform((3,), 0, 1, dtype=tf.dtypes.float32, seed=32)
random_dataset = tf.data.Dataset.from_generator(
random_generator,
output_types=tf.float32,
output_shapes=(3,)
)
我需要对输入和输出使用相同的数据加载器,但在压缩时我会得到不同的输入和输出。
dataloader = tf.data.Dataset.zip((random_dataset, random_dataset))
model.fit(dataloader, epochs=200, batch_size=32)
是否有任何方法可以复制数据集或生成随机数字数组,以便在第二次调用时产生相同的结果?
您可以使用 TensorFlow 生成器种子 setter 并将两个种子设置为一个数字。
def random_generator():
generator = tf.random.Generator.from_seed(43)
while True:
yield tf.round(
generator.uniform((3,), 0, 1, dtype=tf.dtypes.float32)
)
现在让生成器数据加载器在第二次调用中给我们相同的结果。
我正在尝试实现一个输出与其输入相同的模型。这是一个广泛模型的简单部分,我删除了复杂的部分。我写了一个生成随机数的数据加载器。
def random_generator():
tf.random.set_seed(43)
while True:
yield tf.random.uniform((3,), 0, 1, dtype=tf.dtypes.float32, seed=32)
random_dataset = tf.data.Dataset.from_generator(
random_generator,
output_types=tf.float32,
output_shapes=(3,)
)
我需要对输入和输出使用相同的数据加载器,但在压缩时我会得到不同的输入和输出。
dataloader = tf.data.Dataset.zip((random_dataset, random_dataset))
model.fit(dataloader, epochs=200, batch_size=32)
是否有任何方法可以复制数据集或生成随机数字数组,以便在第二次调用时产生相同的结果?
您可以使用 TensorFlow 生成器种子 setter 并将两个种子设置为一个数字。
def random_generator():
generator = tf.random.Generator.from_seed(43)
while True:
yield tf.round(
generator.uniform((3,), 0, 1, dtype=tf.dtypes.float32)
)
现在让生成器数据加载器在第二次调用中给我们相同的结果。