python - 有没有一种方法可以在不使用 __iter__() 的情况下从 Tensorflow MapDataset 中获取元素?
问题描述
我目前正在关注 Tensorflow 的时间序列预测教程,可以在此处找到。该类WindowGenerator
提供了一个example(self)
返回输入和标签示例的函数。但是,此功能需要使用__iter__()
,当禁用急切执行时不支持该功能(我出于其他目的这样做了)。self.train
有没有一种方法可以在不使用的情况下获取元素__iter__()
?
这是该课程的摘录:
class WindowGenerator():
def __init__(self, input_width, label_width, shift,
train_df=train_df, val_df=val_df, test_df=test_df,
label_columns=None):
# Store the raw data.
self.train_df = train_df
self.val_df = val_df
self.test_df = test_df
.
.
.
.
.
.
def make_dataset(self, data):
data = np.array(data, dtype=np.float32)
ds = tf.keras.preprocessing.timeseries_dataset_from_array(
data=data,
targets=None,
sequence_length=self.total_window_size,
sequence_stride=1,
shuffle=True,
batch_size=16,)
ds = ds.map(self.split_window)
return ds
@property
def train(self):
return self.make_dataset(self.train_df)
@property
def val(self):
return self.make_dataset(self.val_df)
@property
def test(self):
return self.make_dataset(self.test_df)
@property
def example(self):
"""Get and cache an example batch of `inputs, labels` for plotting."""
result = getattr(self, '_example', None)
if result is None:
# No example batch was found, so get one from the `.test` dataset
result = next(iter(self.test))
# And cache it for next time
self._example = result
return result
解决方案
推荐阅读
- controller - 如何将控制器添加到我的自定义扩展?打字稿3 9.5
- docker - 是否可以从 yocto 生成的图像创建 docker 图像?
- python - 使用 Tensorflow 2 中保存的 TensorFlow Estimator 进行预测
- vue.js - 修复无限循环。Vue.js
- sql - Python SQL日期插入问题
- c++ - 子进程在通过 nodejs 生成的基于 Windows 的 docker 容器内意外退出
- php - 在 URL 中发送视图字段 - Drupal
- bazel - py3_image 可以在非 root 用户下运行吗?
- xml - 选择具有特定标准 XMLPath 的标题元素
- java - intellij scala java.lang.classnotfoundexception oracle.jdbc.driver.oracledriver