小编Mar*_*zen的帖子

Pytorch 数据集中无法打开共享文件映射错误

在 Pytorch 1.4 中使用自定义数据集训练模型时,在看似随机的时期后会引发以下错误。

RuntimeError: Couldn't open shared file mapping: <torch_15324_2327643205>, error code: <1455>
Run Code Online (Sandbox Code Playgroud)

数据集被包装在 a 中torch.utils.data.DataLoader并使用 4 个工作线程,等于物理核心的数量。

class TSNDataSet(data.Dataset):
    def __init__(self, pickle_file_paths, transforms):
        self.pickle_file_paths = pickle_file_paths # list with file paths to pickle files
        self.dataset_size = len(pickle_file_paths)

    def __getitem__(self, index):
        with open(self.pickle_file_paths[index], 'rb') as f:
            mffs = pickle.load(f)
            
        return mffs, index

    def __len__(self):
        return self.dataset_size
Run Code Online (Sandbox Code Playgroud)

了解错误的含义以及可能的解决方案是什么会很有帮助。

runtime-error pytorch dataloader

5
推荐指数
1
解决办法
1137
查看次数

数据增强映射函数中的 Tensorflow 随机数

我想使用crop_central具有 0.50-1.00 之间的随机浮点数的函数来进行数据增强。然而,在使用numpy.random.uniform(0.50, 1.00)和绘制图像时,裁剪是恒定的。我通过使用 4 个图像并绘制 8 行进行了调试,图像是相同的。

一般来说,问题可以表述如下:如何在数据集映射函数中使用随机数?

def data_augment(image, label=None, seed=2020):
    # I want a random number here for every individual image
    image = tf.image.central_crop(image, np.random.uniform(0.50, 1.00)) # random crop central
    image = tf.image.resize(image, INPUT_SHAPE) # the original image size

    return image

train_dataset = (
    tf.data.Dataset
        .from_tensor_slices((train_paths, train_labels))
        .map(decode_image, num_parallel_calls=AUTO)
        .map(data_augment, num_parallel_calls=AUTO)
        .repeat()
        .batch(4)
        .prefetch(AUTO)
    )

# Code to view the images
for idx, (imgs, _) in enumerate(train_dataset):
    show_imgs(imgs, 'image', imgs_per_row=4)
    if idx is …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorflow-datasets data-augmentation

4
推荐指数
1
解决办法
1548
查看次数