当前位置: 首页 > 知识库问答 >
问题:

从\u数组中重塑使用timeseries\u dataset\u预处理的Tensorflow数据集

桑鸿志
2023-03-14

注意:我已经阅读了如何重塑BatchDataset类张量?但是解决方案在这里不适用。

正如在训练一个神经网络时所提到的,输入是带有Tensorflow/Keras的矩阵的滑动窗口,记忆问题,我需要从一个形状矩阵(10000,2000)训练一个具有所有形状滑动窗口(16,2000)的神经网络。(在我的另一篇文章中是100k,但这里10k还可以)。

import tensorflow
import numpy as np
X = np.array(range(20000000)).reshape(10000, 2000)  
X = tensorflow.keras.preprocessing.timeseries_dataset_from_array(X, None, 16, sequence_stride=1, sampling_rate=1, batch_size=32)
for b in X:
    print(b)  # Tensor of shape (32, 16, 2000)
    break

问题是,我需要把它输入一个需要(...,16, 2000, 1)形状的模型。

model = Sequential()
model.add(Conv2D(16, kernel_size=(9, 9), activation='relu', input_shape=(16, 2000, 1), padding='same'))
...
model.fit(X, Y, epochs=8)

我试过了

X = tensorflow.reshape(X, (-1, 16, 2000, 1))

没有成功。

如何做到这一点,即有输出的timeseries_dataset_from_array的形状(...,16, 2000, 1)

共有1个答案

邵飞宇
2023-03-14

要对tf.data.Dataset的每个元素应用转换,您应该使用tf.data.Dataset.map函数。在您的情况下,您可以使用tf使用lambda定义函数。expand_dims

ds = tensorflow.keras.preprocessing.timeseries_dataset_from_array(X, None, 16, sequence_stride=1, sampling_rate=1, batch_size=32)
ds_correct_shape = ds.map(lambda x: tf.expand_dims(x,axis=-1))

如果我们检查第一个元素的形状:

>>> for elem in ds_correct_shape.take(1):
        print(f"{elem.shape=}")
elem.shape=TensorShape([32, 16, 2000, 1])

 类似资料:
  • 嗨,我正在尝试从数据库中读取数据,然后将其放入表中。表中的行是根据数据库中的行数自动创建的。我已经在php中使用mysql\u fetch\u array完成了这项工作,但似乎无法在asp中完成。net webforms。我的想法是使用此查询获取信息并存储在服务器页面的标签中,然后在那里创建一个表,其中包含使用标签填充的冒号数据。这是我在“page\u load”中的代码谢谢: SqlComman

  • 本文向大家介绍如何使用Tensorflow和Python整理预处理的数据?,包括了如何使用Tensorflow和Python整理预处理的数据?的使用技巧和注意事项,需要的朋友参考一下 Tensorflow是Google提供的一种机器学习框架。它是一个开放源代码框架,与Python结合使用以实现算法,深度学习应用程序等等。它用于研究和生产目的。它具有优化技术,可帮助快速执行复杂的数学运算。这是因为它

  • 目前为止,我们只是使用了存放在内存中的数据集,但深度学习系统经常需要在大数据集上训练,而内存放不下大数据集。其它的深度学习库通过对大数据集做预处理,绕过了内存限制,但 TensorFlow 通过 Data API,使一切都容易了:只需要创建一个数据集对象,告诉它去哪里拿数据,以及如何做转换就行。TensorFlow 负责所有的实现细节,比如多线程、队列、批次和预提取。另外,Data API 和tf

  • 问题内容: tl; dr是否 可以在不使用numpy.reshape的情况下将numpy数组的视图从5x5x5x3x3x3重塑为125x1x1x3x3x3? 我想对一个体积(大小为MxMxM)执行一个滑动窗口操作(具有不同的步幅)。如本杰明(Benjamin)和艾肯伯格(Eickenberg)先前建议的那样,可以使用生成滑动窗口数组,并在下面的代码片段中进行了演示,该代码片段使用了skimage中

  • 我有这样的json。在我的情况下,当我单击一个产品时,我会将该产品交给detailproduct。在那之后,我在我的详细信息屏幕中有了回收器。我想按产品数组获取回收商项目,该数组的id等于单击的产品id。 我想了解产品阵列。我的api方法正在返回调用

  • NNAPI 1.1已经支持SPACE_TO_BATCH_ND和BATCH_TO_SPACE_ND操作,但是当前的TFLite代码还没有实现。参见:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/nnapi_delegate.cc#L607 我试着这样添加它们: 但它不起作用,当我在android设备上运行它时