【发布时间】:2021-06-23 14:11:42
【问题描述】:
我有一系列 2D 图像(它是如何通过每个时间步传播的)描绘了一个模拟。假设我有 1000 组模拟,每组包含 10 个时间帧图像。这不是一个监督学习问题,因为没有类标签。模型必须学习如何随着时间的推移进行仿真。 (每个模拟都有一个单独的文件夹,每个文件夹包含 10 个时间帧图像)。
谁能帮我创建一个合适的 4D 张量/.npy 以 [no_frames_in_each_sample, total_samples, image_height, image_width) 的形式(在我们的示例中为 [10, 1000, 64, 64]。
以后我可以用它把它分成训练和验证。
任何帮助将不胜感激!谢谢。
【问题讨论】:
-
嘿,只需创建一个 H,W,C 的图像列表(其中 H 高度,W 与,C 通道数)并确保所有图像具有相同的 (H,W,C) ;然后 np.array(list_of_images_HWC) ;如果需要,请发布您的代码示例
-
@Tom,非常感谢您的建议。我已经使用以下代码进行了尝试: import os import numpy as np from PIL import Image data = "Dataset/Simulation 01/" images = sorted(os.listdir(data)) seq = [] for image in images: img = Image.open(data + image) img = img.resize((160, 220)) seq.append(np.asarray(img)) seq = np.array(seq) print(seq.shape)
-
@Tom,非常感谢您的建议。我已使用以下代码尝试过此操作,但生成的形状为 (10, 220, 160, 3)。也就是说,我能够将单个文件夹中的图像转换为 numpy 数组。如何将其转换为 [10, number_of 个文件夹, 220, 160]?如果可行的话,我也可以将所有框架放在一个文件夹中。谢谢。
-
只是为了澄清,在这种情况下,您的形状必须按以下方式解释(至少这是最可能的情况)。 Nimages,Height,Width,Channels = 10, 220, 160 ,3 ;表示您有 10 张带有 HWC 的图像。要将这个 4d 张量放在单个 numpy 中,假设您已经拥有 numpy 数组,只需使用方法 mynumpyarray.save("mynumpypath.npy") 就可以了。你明白了吗?
标签: python tensorflow image-preprocessing