示例#1
0
 def insert_tensors(self, tensor_dict: TensorDict, data_dict: DataDict,
                    model_dict: ModelDict,
                    batch_idx: np.ndarray) -> TensorDict:
     source_tensor = tensor_dict.get(self.source_tensor_key)
     transformed = self.transform_lambda(source_tensor).to(device)
     tensor_dict.set(self.target_tensor_key, transformed)
     return tensor_dict
示例#2
0
 def insert_tensors(self, tensor_dict: TensorDict, data_dict: DataDict,
                    model_dict: ModelDict,
                    batch_idx: np.ndarray) -> TensorDict:
     tensors = torch.stack([
         tensor_dict.get(tensor_key)
         for tensor_key in self.source_tensor_keys
     ])
     summed = torch.sum(tensors, dim=0)
     tensor_dict.set(self.target_tensor_key, summed)
     return tensor_dict
示例#3
0
 def insert_tensors(self, tensor_dict: TensorDict, data_dict: DataDict,
                    model_dict: ModelDict,
                    batch_idx: np.ndarray) -> TensorDict:
     model = model_dict.get(self.model_key)
     source_tensors = [
         tensor_dict.get(key) for key in self.source_tensor_keys
     ]
     result_tensor_list = self.transform_lambda(model, source_tensors)
     for target_tensor_key, result_tensor in zip(self.target_tensor_keys,
                                                 result_tensor_list):
         tensor_dict.set(target_tensor_key, result_tensor)
     return tensor_dict
示例#4
0
 def get_loss(self, tensor_dicts: TensorDict):
     return self.weight * torch.mean(
         tensor_dicts.get(self.input_tensor_key)**2)