python - 具有相同输入和输出的模型中的生成器数据加载器
问题描述
我正在尝试实现一个输出与其输入相同的模型。这是一个扩展模型的一个简单部分,我删除了复杂的部分。我写了一个生成器数据加载器来生成随机数。
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 生成器种子设置器并将两个种子设置为一个数字。
def random_generator():
generator = tf.random.Generator.from_seed(43)
while True:
yield tf.round(
generator.uniform((3,), 0, 1, dtype=tf.dtypes.float32)
)
现在制作生成器数据加载器会在第二次调用中为我们提供相同的结果。
推荐阅读
- node.js - 函数将对象作为 promise { pending } 返回
- r - 结合循环和一些 dplyr 函数
- hapi-fhir - 当术语服务器不可用时,如何制作假的 ValueSet 资源(例如货币符号)?
- rss - 如何提供 RSS 提要的修改版本?
- python - 异步更新数据库上的字典
- c# - 为什么 double.IsNegative(double.NaN) 返回 true?
- javascript - Angular 10 到 12 更新导致错误 Uncaught RangeError: Wrong length
- webpack - 使用 html-webpack-plugin 版本 5.3.1 获取未定义的“点击”
- java - JsonMappingException:无法从 VALUE_STRING 令牌中反序列化 java.util.ArrayList 的实例
- python - 使用字符串和浮点数字典的 Pandas DataFrame 分配错误?