| 
					
					
						
							
						
					
					
				 | 
				@ -26,13 +26,16 @@ class Resnet50ImageEmbedding(Operator): | 
			
		
		
	
		
			
				 | 
				 | 
				    """ | 
				 | 
				 | 
				    """ | 
			
		
		
	
		
			
				 | 
				 | 
				    PyTorch model for image embedding. | 
				 | 
				 | 
				    PyTorch model for image embedding. | 
			
		
		
	
		
			
				 | 
				 | 
				    """ | 
				 | 
				 | 
				    """ | 
			
		
		
	
		
			
				 | 
				 | 
				    def __init__(self, model_name: str) -> None: | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    def __init__(self, model_name: str, framework: str = 'pytorch') -> None: | 
			
		
		
	
		
			
				 | 
				 | 
				        super().__init__() | 
				 | 
				 | 
				        super().__init__() | 
			
		
		
	
		
			
				 | 
				 | 
				        sys.path.append(str(Path(__file__).parent)) | 
				 | 
				 | 
				        sys.path.append(str(Path(__file__).parent)) | 
			
		
		
	
		
			
				 | 
				 | 
				        from pytorch.resnet50 import Resnet50 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        resnet50_image_embedding = Resnet50(model_name) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        self._model = resnet50_image_embedding.load_model() | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        if framework == 'pytorch': | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            from pytorch.model import Model | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        if framework == 'tensorflow': | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            from tensorflow.model import Model | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        self.model = Model(model_name) | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				    def __call__(self, img_tensor: torch.Tensor) -> NamedTuple('Outputs', [('cnn', numpy.ndarray)]): | 
				 | 
				 | 
				    def __call__(self, img_tensor: torch.Tensor) -> NamedTuple('Outputs', [('cnn', numpy.ndarray)]): | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        embedding = self.model(img_tensor) | 
			
		
		
	
		
			
				 | 
				 | 
				        Outputs = NamedTuple('Outputs', [('cnn', numpy.ndarray)]) | 
				 | 
				 | 
				        Outputs = NamedTuple('Outputs', [('cnn', numpy.ndarray)]) | 
			
		
		
	
		
			
				 | 
				 | 
				        return Outputs(self._model(img_tensor).detach().numpy()) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        return Outputs(embedding) | 
			
		
		
	
	
		
			
				| 
					
					
					
				 | 
				
  |