Source code for jactorch.data.collate.utils
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# File : utils.py
# Author : Jiayuan Mao
# Email : maojiayuan@gmail.com
# Date : 03/09/2020
#
# This file is part of Jacinle.
# Distributed under terms of the MIT license.
import torch
from jacinle.utils.enum import JacEnum
[docs]
def use_shared_memory():
if torch.__version__ < '1.1':
import torch.utils.data.dataloader as torchdl
return torchdl._use_shared_memory
elif torch.__version__ < '1.2':
import torch.utils.data._utils.collate as torch_collate
return torch_collate._use_shared_memory
else:
return torch.utils.data.get_worker_info() is not None
numpy_type_map = {
'float64': torch.DoubleTensor,
'float32': torch.FloatTensor,
'float16': torch.HalfTensor,
'int64': torch.LongTensor,
'int32': torch.IntTensor,
'int16': torch.ShortTensor,
'int8': torch.CharTensor,
'uint8': torch.ByteTensor,
}
[docs]
def user_scattered_collate(batch):
"""
A helper function indicating that no collation needs to be done.
"""
return batch
[docs]
class VarLengthCollateMode(JacEnum):
SKIP = 'skip'
CONCAT = 'concat'
PAD = 'pad'
PAD2D = 'pad2d'
PADIMAGE = 'padimage'
STACK = 'stack'