我有一个包含 RGB 图像的图像数据集:img1.png、img2.png ... img250.png。[64,64,3]
我从每个图像中提取了 100 个大小不同的小块。所以,我现在有像img1_1.png、img1_2.png ...img1_100.png、img2_1.png、img2_2.png、... img2_100.png、img3_1、......
我想创建一个数据生成器,tf.data.dataset.from_tensor_slices
将每个图像的所有补丁传递给 RNN 模型。所以,我希望生成器创建这样的输出:[batch_size, 100, 64, 64, 3]
我怎样才能做到这一点?
250:是图像的数量,100:是从每个图像中提取的补丁数量,64、64、3:每个补丁的大小
例如,对于每次迭代,我想随机选择 250 个图像中的 32 个,并将它们的所有 100 个补丁放在一起并创建以下格式(32, 100, 64, 64, 3)
由于内存使用,我无法将所有数据加载到变量中。我只有 25000 个名为img1_1.png、img1_2.png ...img1_100.png、img2_1.png、img2_2.png、... img2_100.png、img3_1、...... img250_1.png、img250_2 的补丁。 png ...img250_100.png。
我认为最好使用格式
tf.data.dataset.from_tensor_slices((patch_files,labels)), but I don't know how.
同样重要的是要注意标签向量的大小是(250,1)。如果批量大小为 32,则生成器应输出大小为 (32,1) 的标签批次