Python torch.float16() Examples
The following are 30
code examples of torch.float16().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
torch
, or try the search function
.
Example #1
Source File: attention.py From seq2seq.pytorch with MIT License | 6 votes |
def forward(self, q, k): b_q, t_q, dim_q = list(q.size()) b_k, t_k, dim_k = list(k.size()) assert(dim_q == dim_k) # dims should be equal b = b_q qk = torch.bmm(q, k.transpose(1, 2)) # b x t_q x t_k qk = qk / (dim_k ** 0.5) mask = None with torch.no_grad(): if self.causal and t_q > 1: causal_mask = q.data.new(t_q, t_k).byte().fill_(1).triu_(1) mask = causal_mask.unsqueeze(0).expand(b, t_q, t_k) if self.mask_k is not None: mask_k = self.mask_k.unsqueeze(1).expand(b, t_q, t_k) mask = mask_k if mask is None else mask | mask_k if self.mask_q is not None: mask_q = self.mask_q.unsqueeze(2).expand(b, t_q, t_k) mask = mask_q if mask is None else mask | mask_q if mask is not None: qk.masked_fill_(mask, float('-inf')) return F.softmax(qk, dim=2, dtype=torch.float32 if qk.dtype == torch.float16 else qk.dtype)
Example #2
Source File: external_configurables_test.py From gin-config with Apache License 2.0 | 6 votes |
def testDtypes(self): # Spot check a few. config_str = """ # Test without torch prefix, but using the # prefix is strongly recommended! configurable.float32 = %float32 # Test with torch prefix. configurable.int8 = %torch.int8 configurable.float16 = %torch.float16 """ config.parse_config(config_str) vals = configurable() # pylint: disable=E1101 self.assertIs(vals['float32'], torch.float32) self.assertIs(vals['int8'], torch.int8) self.assertIs(vals['float16'], torch.float16) # pylint: disable=E1101
Example #3
Source File: pytorch_abstract_types.py From myia with MIT License | 6 votes |
def pytorch_dtype_to_type(dtype): """Map a pytorch dtype to a myia type.""" import torch _type_map = { torch.int8: Int[8], torch.int16: Int[16], torch.int32: Int[32], torch.int64: Int[64], torch.uint8: UInt[8], torch.float16: Float[16], torch.float32: Float[32], torch.float64: Float[64], torch.bool: Bool, } if dtype not in _type_map: raise TypeError(f"Unsupported dtype {dtype}") return _type_map[dtype]
Example #4
Source File: ops.py From adeptRL with GNU General Public License v3.0 | 6 votes |
def update_dtype(self, old_dtype): updated = {} for k, v in old_dtype.items(): if v == np.float32: dt = torch.float32 elif v == np.float64: dt = torch.float64 elif v == np.float16: dt = torch.float16 elif v == np.uint8: dt = torch.uint8 elif v == np.int8: dt = torch.int8 elif v == np.int16: dt = torch.int16 elif v == np.int32: dt = torch.int32 elif v == np.int16: dt = torch.int16 else: raise ValueError("Unsupported dtype {}".format(v)) updated[k] = dt return updated
Example #5
Source File: test_trial.py From torchbearer with MIT License | 6 votes |
def test_to_kwargs(self): dev = 'cuda:1' dtype = torch.float16 torchmodel = torch.nn.Sequential(torch.nn.Linear(1,1)) torchmodel.to = Mock() optimizer = torch.optim.Adam(torchmodel.parameters(), 0.1) state_tensor = torch.Tensor([1]) state_tensor.to = Mock() optimizer.state = {'test': {'test': state_tensor}} torchbearertrial = Trial(torchmodel, optimizer, torch.nn.L1Loss(), []) torchbearertrial.to(device=dev, dtype=dtype) self.assertTrue(torchmodel.to.call_args[1]['device'] == dev) self.assertTrue(torchmodel.to.call_args[1]['dtype'] == dtype) self.assertTrue(state_tensor.to.call_args[1]['device'] == dev) self.assertTrue(state_tensor.to.call_args[1]['dtype'] == dtype)
Example #6
Source File: test_trial.py From torchbearer with MIT License | 6 votes |
def test_to_both_args(self): dev = 'cuda:1' dtype = torch.float16 torchmodel = torch.nn.Sequential(torch.nn.Linear(1,1)) torchmodel.to = Mock() optimizer = torch.optim.Adam(torchmodel.parameters(), 0.1) state_tensor = torch.Tensor([1]) state_tensor.to = Mock() optimizer.state = {'test': {'test': state_tensor}} torchbearertrial = Trial(torchmodel, optimizer, torch.nn.L1Loss(), []) torchbearertrial.to(dev, dtype) self.assertTrue(torchmodel.to.call_args[0][0] == dev) self.assertTrue(torchmodel.to.call_args[0][1] == dtype) self.assertTrue(state_tensor.to.call_args[0][0] == dev) self.assertTrue(state_tensor.to.call_args[0][1] == dtype)
Example #7
Source File: types.py From chainer-compiler with MIT License | 6 votes |
def torch_dtype_to_np_dtype(dtype): dtype_dict = { torch.bool : np.dtype(np.bool), torch.uint8 : np.dtype(np.uint8), torch.int8 : np.dtype(np.int8), torch.int16 : np.dtype(np.int16), torch.short : np.dtype(np.int16), torch.int32 : np.dtype(np.int32), torch.int : np.dtype(np.int32), torch.int64 : np.dtype(np.int64), torch.long : np.dtype(np.int64), torch.float16 : np.dtype(np.float16), torch.half : np.dtype(np.float16), torch.float32 : np.dtype(np.float32), torch.float : np.dtype(np.float32), torch.float64 : np.dtype(np.float64), torch.double : np.dtype(np.float64), } return dtype_dict[dtype] # ---------------------- InferenceEngine internal types ------------------------
Example #8
Source File: utils.py From fairseq with MIT License | 6 votes |
def move_to_cpu(sample): def _move_to_cpu(tensor): # PyTorch has poor support for half tensors (float16) on CPU. # Move any such tensors to float32. if tensor.dtype in {torch.bfloat16, torch.float16}: tensor = tensor.to(dtype=torch.float32) return tensor.cpu() return apply_to_sample(_move_to_cpu, sample)
Example #9
Source File: knowbert.py From kb with Apache License 2.0 | 6 votes |
def print_shapes(x, prefix='', raise_on_nan=False): if isinstance(x, torch.Tensor): print(prefix, x.shape) if x.dtype == torch.float32 or x.dtype == torch.float16: print(x.min(), x.max(), x.mean(), x.std()) if raise_on_nan and torch.isnan(x).long().sum().item() > 0: print("GOT NAN!!") raise ValueError elif isinstance(x, (list, tuple)): for ele in x: print_shapes(ele, prefix + '-->') elif isinstance(x, dict): for k, v in x.items(): print_shapes(v, prefix + ' ' + k + ':') else: print("COULDN'T get shape ", type(x))
Example #10
Source File: modeling_utils.py From NLP_Toolkit with Apache License 2.0 | 6 votes |
def invert_attention_mask(self, encoder_attention_mask: Tensor) -> Tensor: """type: torch.Tensor -> torch.Tensor""" if encoder_attention_mask.dim() == 3: encoder_extended_attention_mask = encoder_attention_mask[:, None, :, :] if encoder_attention_mask.dim() == 2: encoder_extended_attention_mask = encoder_attention_mask[:, None, None, :] # T5 has a mask that can compare sequence ids, we can simulate this here with this transposition # Cf. https://github.com/tensorflow/mesh/blob/8d2465e9bc93129b913b5ccc6a59aa97abd96ec6/mesh_tensorflow # /transformer/transformer_layers.py#L270 # encoder_extended_attention_mask = (encoder_extended_attention_mask == # encoder_extended_attention_mask.transpose(-1, -2)) encoder_extended_attention_mask = encoder_extended_attention_mask.to(dtype=self.dtype) # fp16 compatibility if self.dtype == torch.float16: encoder_extended_attention_mask = (1.0 - encoder_extended_attention_mask) * -1e4 elif self.dtype == torch.float32: encoder_extended_attention_mask = (1.0 - encoder_extended_attention_mask) * -1e9 else: raise ValueError( "{} not recognized. `dtype` should be set to either `torch.float32` or `torch.float16`".format( self.dtype ) ) return encoder_extended_attention_mask
Example #11
Source File: util.py From rlgraph with Apache License 2.0 | 6 votes |
def convert_param(param, requires_grad): if get_backend() == "pytorch": # Do nothing. if isinstance(param, torch.Tensor): return param if isinstance(param, list): param = np.asarray(param) if isinstance(param, np.ndarray): param_type = param.dtype else: param_type = type(param) convert_type = convert_dtype(param_type, to="pytorch") # PyTorch cannot convert from a np.bool_, must be uint. if isinstance(param, np.ndarray) and param.dtype == np.bool_: param = param.astype(np.uint8) if convert_type == torch.float32 or convert_type == torch.float or convert_type == torch.float16: # Only floats can require grad. return torch.tensor(param, dtype=convert_type, requires_grad=requires_grad) else: return torch.tensor(param, dtype=convert_type)
Example #12
Source File: test_helper.py From skorch with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_describe_signature_other_dtypes(self, transformer_cls, df): transformer = transformer_cls( float_dtype=np.float16, int_dtype=np.int32, ) result = transformer.describe_signature(df) expected = { 'X': {"dtype": torch.float16, "input_units": 2}, 'col_cats': {"dtype": torch.int32, "input_units": 2}, } assert result == expected
Example #13
Source File: utils.py From attn2d with MIT License | 5 votes |
def move_to_cpu(sample): def _move_to_cpu(tensor): # PyTorch has poor support for half tensors (float16) on CPU. # Move any such tensors to float32. if tensor.dtype == torch.float16: tensor = tensor.to(dtype=torch.float32) return tensor.cpu() return apply_to_sample(_move_to_cpu, sample)
Example #14
Source File: test_memory_efficient_fp16.py From attn2d with MIT License | 5 votes |
def test_load_state_dict(self): # define simple FP16 model model = torch.nn.Linear(5, 5).cuda().half() params = list(model.parameters()) # initialize memory efficient FP16 optimizer optimizer = FairseqAdam( argparse.Namespace( lr=[0.00001], adam_betas='(0.9, 0.999)', adam_eps=1e-8, weight_decay=0.0, ), params, ) me_optimizer = MemoryEfficientFP16Optimizer( argparse.Namespace( fp16_init_scale=1, fp16_scale_window=1, fp16_scale_tolerance=1, threshold_loss_scale=1, min_loss_scale=1e-4, ), params, optimizer, ) # optimizer state is created in the first step loss = model(torch.rand(5).cuda().half()).sum() me_optimizer.backward(loss) me_optimizer.step() # reload state state = me_optimizer.state_dict() me_optimizer.load_state_dict(state) for k, v in me_optimizer.optimizer.state.items(): self.assertTrue(k.dtype == torch.float16) for v_i in v.values(): if torch.is_tensor(v_i): self.assertTrue(v_i.dtype == torch.float32)
Example #15
Source File: test_qz.py From condensa with Apache License 2.0 | 5 votes |
def test_float16(device): scheme = schemes.Quantize(condensa.float16) fc = torch.nn.Linear(100, 10).float().to(device) scheme.pi(fc) assert fc.weight.dtype == torch.float16 scheme.delta(fc) assert fc.weight.dtype == torch.float32
Example #16
Source File: attention.py From flowseq with Apache License 2.0 | 5 votes |
def forward(self, query, key, key_mask=None): """ Args: query: Tensor query tensor [batch, query_length, query_features] key: Tensor key tensor [batch, key_length, key_features] key_mask: ByteTensor or None binary ByteTensor [batch, src_len] padding elements are indicated by 1s. Returns: Tensor value tensor [batch, query_length, value_features] """ bs, timesteps, _ = key.size() dim = self.hidden_features # [batch, query_length, dim] query = self.query_proj(query) # [batch, key_length, 2 * dim] c = self.key_proj(key) # [batch, key_length, 2, dim] c = c.view(bs, timesteps, 2, dim) # [batch, key_length, dim] key = c[:, :, 0] value = c[:, :, 1] # attention weights [batch, query_length, key_length] attn_weights = torch.bmm(query, key.transpose(1, 2)) if key_mask is not None: attn_weights = attn_weights.masked_fill(key_mask.unsqueeze(1), float('-inf')) attn_weights = F.softmax(attn_weights.float(), dim=-1, dtype=torch.float32 if attn_weights.dtype == torch.float16 else attn_weights.dtype) # values [batch, query_length, dim] out = torch.bmm(attn_weights, value) out = F.dropout(self.fc(out), p=self.dropout, training=self.training) return out
Example #17
Source File: batch_norm.py From Landmark2019-1st-and-3rd-Place-Solution with Apache License 2.0 | 5 votes |
def forward(self, x): # Cast all fixed parameters to half() if necessary if x.dtype == torch.float16: self.weight = self.weight.half() self.bias = self.bias.half() self.running_mean = self.running_mean.half() self.running_var = self.running_var.half() scale = self.weight * self.running_var.rsqrt() bias = self.bias - self.running_mean * scale scale = scale.reshape(1, -1) bias = bias.reshape(1, -1) return x * scale + bias
Example #18
Source File: common.py From torch2trt with MIT License | 5 votes |
def torch_to_np_dtype_map(): import torch type_map = { torch.float16: np.dtype(np.float16), torch.float32: np.dtype(np.float32), torch.float64: np.dtype(np.float64), torch.int32: np.dtype(np.int32), torch.int64: np.dtype(np.int64), torch.uint8: np.dtype(np.uint8), } return type_map
Example #19
Source File: modeling_utils.py From NLP_Toolkit with Apache License 2.0 | 5 votes |
def forward(self, hidden_states, start_states=None, start_positions=None, p_mask=None): """ Args: One of ``start_states``, ``start_positions`` should be not None. If both are set, ``start_positions`` overrides ``start_states``. **start_states**: ``torch.LongTensor`` of shape identical to hidden_states hidden states of the first tokens for the labeled span. **start_positions**: ``torch.LongTensor`` of shape ``(batch_size,)`` position of the first token for the labeled span: **p_mask**: (`optional`) ``torch.FloatTensor`` of shape ``(batch_size, seq_len)`` Mask of invalid position such as query and special symbols (PAD, SEP, CLS) 1.0 means token should be masked. """ assert ( start_states is not None or start_positions is not None ), "One of start_states, start_positions should be not None" if start_positions is not None: slen, hsz = hidden_states.shape[-2:] start_positions = start_positions[:, None, None].expand(-1, -1, hsz) # shape (bsz, 1, hsz) start_states = hidden_states.gather(-2, start_positions) # shape (bsz, 1, hsz) start_states = start_states.expand(-1, slen, -1) # shape (bsz, slen, hsz) x = self.dense_0(torch.cat([hidden_states, start_states], dim=-1)) x = self.activation(x) x = self.LayerNorm(x) x = self.dense_1(x).squeeze(-1) if p_mask is not None: if next(self.parameters()).dtype == torch.float16: x = x * (1 - p_mask) - 65500 * p_mask else: x = x * (1 - p_mask) - 1e30 * p_mask return x
Example #20
Source File: tools.py From second.pytorch with MIT License | 5 votes |
def torch_to_np_dtype(ttype): type_map = { torch.float16: np.dtype(np.float16), torch.float32: np.dtype(np.float32), torch.float16: np.dtype(np.float64), torch.int32: np.dtype(np.int32), torch.int64: np.dtype(np.int64), torch.uint8: np.dtype(np.uint8), } return type_map[ttype]
Example #21
Source File: modeling_utils.py From NLP_Toolkit with Apache License 2.0 | 5 votes |
def forward(self, hidden_states, p_mask=None): """ Args: **p_mask**: (`optional`) ``torch.FloatTensor`` of shape `(batch_size, seq_len)` invalid position mask such as query and special symbols (PAD, SEP, CLS) 1.0 means token should be masked. """ x = self.dense(hidden_states).squeeze(-1) if p_mask is not None: if next(self.parameters()).dtype == torch.float16: x = x * (1 - p_mask) - 65500 * p_mask else: x = x * (1 - p_mask) - 1e30 * p_mask return x
Example #22
Source File: utils.py From neural_chat with MIT License | 5 votes |
def neginf(dtype): """Return a representable finite number near -inf for a dtype.""" if dtype is torch.float16: return -NEAR_INF_FP16 else: return -NEAR_INF
Example #23
Source File: modeling_utils.py From NLP_Toolkit with Apache License 2.0 | 5 votes |
def forward(self, hidden_states, p_mask=None): """ Args: **p_mask**: (`optional`) ``torch.FloatTensor`` of shape `(batch_size, seq_len)` invalid position mask such as query and special symbols (PAD, SEP, CLS) 1.0 means token should be masked. """ x = self.dense(hidden_states).squeeze(-1) if p_mask is not None: if next(self.parameters()).dtype == torch.float16: x = x * (1 - p_mask) - 65500 * p_mask else: x = x * (1 - p_mask) - 1e30 * p_mask return x
Example #24
Source File: utils.py From BigGAN-PyTorch with MIT License | 5 votes |
def prepare_z_y(G_batch_size, dim_z, nclasses, device='cuda', fp16=False,z_var=1.0): z_ = Distribution(torch.randn(G_batch_size, dim_z, requires_grad=False)) z_.init_distribution('normal', mean=0, var=z_var) z_ = z_.to(device,torch.float16 if fp16 else torch.float32) if fp16: z_ = z_.half() y_ = Distribution(torch.zeros(G_batch_size, requires_grad=False)) y_.init_distribution('categorical',num_categories=nclasses) y_ = y_.to(device, torch.int64) return z_, y_
Example #25
Source File: torch.py From ParlAI with MIT License | 5 votes |
def neginf(dtype: torch.dtype) -> float: """ Return a representable finite number near -inf for a dtype. """ if dtype is torch.float16: return -NEAR_INF_FP16 else: return -NEAR_INF
Example #26
Source File: modeling_utils.py From NLP_Toolkit with Apache License 2.0 | 5 votes |
def forward(self, hidden_states, start_states=None, start_positions=None, p_mask=None): """ Args: One of ``start_states``, ``start_positions`` should be not None. If both are set, ``start_positions`` overrides ``start_states``. **start_states**: ``torch.LongTensor`` of shape identical to hidden_states hidden states of the first tokens for the labeled span. **start_positions**: ``torch.LongTensor`` of shape ``(batch_size,)`` position of the first token for the labeled span: **p_mask**: (`optional`) ``torch.FloatTensor`` of shape ``(batch_size, seq_len)`` Mask of invalid position such as query and special symbols (PAD, SEP, CLS) 1.0 means token should be masked. """ assert ( start_states is not None or start_positions is not None ), "One of start_states, start_positions should be not None" if start_positions is not None: slen, hsz = hidden_states.shape[-2:] start_positions = start_positions[:, None, None].expand(-1, -1, hsz) # shape (bsz, 1, hsz) start_states = hidden_states.gather(-2, start_positions) # shape (bsz, 1, hsz) start_states = start_states.expand(-1, slen, -1) # shape (bsz, slen, hsz) x = self.dense_0(torch.cat([hidden_states, start_states], dim=-1)) x = self.activation(x) x = self.LayerNorm(x) x = self.dense_1(x).squeeze(-1) if p_mask is not None: if next(self.parameters()).dtype == torch.float16: x = x * (1 - p_mask) - 65500 * p_mask else: x = x * (1 - p_mask) - 1e30 * p_mask return x
Example #27
Source File: test_utils_torch.py From ParlAI with MIT License | 5 votes |
def test_neginf(self): assert neginf(torch.float32) < -1e15 assert neginf(torch.float16) > -1e15 assert neginf(torch.float16) < -1e4
Example #28
Source File: modeling_utils.py From NLP_Toolkit with Apache License 2.0 | 5 votes |
def forward(self, hidden_states, p_mask=None): """ Args: **p_mask**: (`optional`) ``torch.FloatTensor`` of shape `(batch_size, seq_len)` invalid position mask such as query and special symbols (PAD, SEP, CLS) 1.0 means token should be masked. """ x = self.dense(hidden_states).squeeze(-1) if p_mask is not None: if next(self.parameters()).dtype == torch.float16: x = x * (1 - p_mask) - 65500 * p_mask else: x = x * (1 - p_mask) - 1e30 * p_mask return x
Example #29
Source File: eval.py From packnet-sfm with MIT License | 5 votes |
def test(ckpt_file, cfg_file, half): """ Monocular depth estimation test script. Parameters ---------- ckpt_file : str Checkpoint path for a pretrained model cfg_file : str Configuration file half: bool use half precision (fp16) """ # Initialize horovod hvd_init() # Parse arguments config, state_dict = parse_test_file(ckpt_file, cfg_file) # Set debug if requested set_debug(config.debug) # Initialize monodepth model from checkpoint arguments model_wrapper = ModelWrapper(config) # Restore model state model_wrapper.load_state_dict(state_dict) # change to half precision for evaluation if requested config.arch["dtype"] = torch.float16 if half else None # Create trainer with args.arch parameters trainer = HorovodTrainer(**config.arch) # Test model trainer.test(model_wrapper)
Example #30
Source File: tensor_types.py From CrypTen with MIT License | 5 votes |
def is_float_tensor(tensor): """Checks if the input tensor is a Torch tensor of a float type.""" return _is_type_tensor(tensor, [torch.float16, torch.float32, torch.float64])