date - 在张量流或张量流扩展中转换日期
问题描述
我正在使用 Tensorflow Extended 预处理数据,其中包括日期值(例如 16-04-2019 形式的值)。我需要对此进行一些预处理,例如两个日期之间的差异并从中提取日、月和年。
例如,我可能需要 01-04-2019 和 16-04-2019 之间的天数差异,但这种差异也可能跨越数天、数月或数年。
现在,只需使用 Python 脚本,这很容易做到,但我想知道是否也可以使用 Tensorflow 来做到这一点?对于我的用例来说,在 Tensorflow 中执行此操作很重要,因为转换需要以图形格式完成,以便我可以通过管道内的转换为模型提供服务。
为此,我正在使用 Tensorflow 1.13.1、Tensorflow Extended 和 Python 2.7。
解决方案
我有一个类似的问题。这个问题是因为 TFX 中的 if-check with 没有考虑日期类型。据我所知,有两种选择:
预处理日期列并将其转换为
int
(例如调用toordinal()
每个元素)字段,然后再将其读入 TFX编辑检查类型的 TFX 函数以考虑类似日期的类型,并将它们动态转换为序数。
您可以导航到venv/lib/python3.7/site-packages/tfx/components/example_gen/utils.py
并查找该功能dict_to_example
。您可以像这样添加日期时间检查
def dict_to_example(instance: Dict[Text, Any]) -> tf.train.Example:
"""Converts dict to tf example."""
feature = {}
for key, value in instance.items():
# TODO(jyzhao): support more types.
if isinstance(value, datetime.datetime): # <---- Check here
value = value.toordinal()
if value is None:
feature[key] = tf.train.Feature()
...
value
将变为int
,int
稍后将在函数中处理并转换为 Tensorflow 类型。
推荐阅读
- reactjs - 在 React Native 功能组件中渲染之前的数据处理
- java - 二叉搜索树插入和打印需要第二意见
- javascript - 如何在使用 jQuery 上传文件之前从文件上传控件中删除文件
- python - Python Dataframe替换用逗号单行分隔的多个值
- android - 如何使用我的应用程序在 Android 启动器主屏幕中对其他应用程序进行分组(按类别)
- java - Guice:将 ContainerRequestContext 注入拦截器
- javascript - dispatch 没有更新 reducer
- reactjs - 是否存在绝对需要类组件的情况?
- python-3.x - 使用 reshape 重塑嵌套的 Numpy 数组
- laravel - laravel上具有多个值的输入复选框