【发布时间】:2020-05-11 16:42:01
【问题描述】:
我想创建一个新类,它基本上是一个数组,但有一些额外的属性。
具体来说,我想编写一个基于 Tensorflow 对象的类,它将描述时间序列数据。因此,它将具有相关的时间间隔 (delta_t) 和时间向量
我用sample_times 属性制作的。
在 python/numpy 中,我执行以下操作
import numpy as np
class TimeSeries(object):
def __init__(self, initial_array, delta_t):
self.initial_array = initial_array
self.delta_t = delta_t
@property
def sample_times(self):
return np.arange(self.initial_array.shape[0]) * self.delta_t
是否可以通过从 tf.Tensor 继承来做类似的事情?
这样做的原因是我相信它会让生活变得更简单
对这些 TimeSeries 对象进行分析,我可以利用
各种 tensorflow 的东西,比如 tf.function 装饰器。
我对最小工作示例的基本尝试如下,只是尝试成为 tf.Tensor 的子类。
import tensorflow as tf
class TFTimeSeries(tf.Tensor):
def __init__(self):
super().__init__()
tf_ts = TFTimeSeries()
实例化TFTimeSeries时出现以下错误
TypeError: __init__() missing 3 required positional arguments: 'op', 'value_index', and 'dtype'
dtype 很简单,但其他两个:'op' 和 'value_index' 我不知道该怎么办。
我应该说我对 tensorflow 的了解并不是很先进,如果能提供任何帮助,我将不胜感激!
编辑:
您好@Filippo Grazioli,感谢您的回答!我认为这是最好的前进方式。在考虑了我的代码设计之后,我认为它不像我想的那样非常适合 Tensorflow。所以只创建一个属性为张量的类更有意义。
我现在将其标记为已回答。
【问题讨论】:
标签: python tensorflow tensorflow2.0