Tensorflow:图形内部或外部规范化?
Tensorflow: Normalization inside or outside graph?
我有一个时间序列数据集,我想在 运行 使用 RNN 训练之前对其进行归一化。我扫描数据并创建一个 tfrecord 文件。然后,训练使用这个 tfrecord 文件。
我的问题是,我将如何决定是先规范化数据并使用规范化数据创建 tfrecord 文件,还是使用原始数据创建 tfrecord 并在训练期间规范化数据,因为它们是从 tfrecord 读取的文件?
现在我对之前的数据进行了规范化,并使用规范化的数据创建了 tfrecord 文件。我这样做是因为我认为训练期间的归一化会增加计算时间,因为 RNN 会不断地从 tfrecord 文件中读取示例,并且需要一遍又一遍地对相同的示例进行归一化。
哪些因素会影响我做出选择的决定?
对此没有一般规则。正如您所说,这完全取决于哪种设置性能更好。
如果您预先规范化数据,网络会 运行 快得多,但您需要存储所有额外的数据。另一方面,如果更改训练数据,则必须重新 运行 该计算。此外,归一化基本上是一次减法(均值)和一次除法(除以标准差),前提是您预先计算了均值和标准差。所以这不是一个非常耗时的操作。
所以我建议两种方式都做,运行 你的网络每种方式 2 分钟,看看性能差异有多大。
再想一想,如果你对输入使用批量归一化,那么它已经在归一化了,这个练习是不必要的。
我有一个时间序列数据集,我想在 运行 使用 RNN 训练之前对其进行归一化。我扫描数据并创建一个 tfrecord 文件。然后,训练使用这个 tfrecord 文件。
我的问题是,我将如何决定是先规范化数据并使用规范化数据创建 tfrecord 文件,还是使用原始数据创建 tfrecord 并在训练期间规范化数据,因为它们是从 tfrecord 读取的文件?
现在我对之前的数据进行了规范化,并使用规范化的数据创建了 tfrecord 文件。我这样做是因为我认为训练期间的归一化会增加计算时间,因为 RNN 会不断地从 tfrecord 文件中读取示例,并且需要一遍又一遍地对相同的示例进行归一化。
哪些因素会影响我做出选择的决定?
对此没有一般规则。正如您所说,这完全取决于哪种设置性能更好。
如果您预先规范化数据,网络会 运行 快得多,但您需要存储所有额外的数据。另一方面,如果更改训练数据,则必须重新 运行 该计算。此外,归一化基本上是一次减法(均值)和一次除法(除以标准差),前提是您预先计算了均值和标准差。所以这不是一个非常耗时的操作。
所以我建议两种方式都做,运行 你的网络每种方式 2 分钟,看看性能差异有多大。
再想一想,如果你对输入使用批量归一化,那么它已经在归一化了,这个练习是不必要的。