3 a @sNddlZddlZddlZddlZddlZddlZddljZddl j Z ddl j j Z ddljZddlZddlZddlmZmZddlZddlZddlZddlmZddlmZddlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%ddl&m'Z'ej(e)Z*e*j+ej,e*j-ej.ej/GdddeZ0d d Z1d Z2d Z3d d Z4ddZ5ddZ6e3fddZ7dS)N)Dataset DataLoader)Image) print_config)Compose LoadImageResizeScaleIntensityToTensor RandRotateRandFlipRandZoom) densenet121c@s$eZdZddZddZddZdS) DICOMDatasetcCs||_||_||_dS)N) image_fileslabels transforms)selfrrrr1/home/ec2-user/SageMaker/repo/source/inference.py__init__!szDICOMDataset.__init__cCs t|jS)N)lenr)rrrr__len__&szDICOMDataset.__len__cCs|j|j||j|fS)N)rrr)rindexrrr __getitem__)szDICOMDataset.__getitem__N)__name__ __module__ __qualname__rrrrrrrrsrcCsDttddttddtg}|t|||}tjjj |dddS) NT) image_only) spatial_size) batch_size num_workers)rr$) rrr rr rtorchutilsdatar)valXValYval_transformsdatasetrrrget_val_data_loader2s  r,zapplication/jsonc CsBtdt}ttjj|dd}|jtj|WdQRX|S)Noption2z model.pthrb) print Your_Modelopenospathjoinload_state_dictr%load) model_dirmodelfrrrmodel_fnEs r:cCstjd||dkr|dd}|dd}td|td|t||}xFt|D](\}}td||djdd d d }|SWntd |dSdS) NzReceived request of type:zapplication/jsonfilerlabelzloaded label is:z inputs is:z input_fn:r z-Requested unsupported ContentType in Accept: )loggerinfor/r, enumeratepermute Exception)serialized_input_data content_typeinputsr< val_loaderival_datarrrinput_fnMs       rJcCstdj|||S)NzGot input Data: {})r/format) input_datar8rrr predict_fncsrMcCsf|tkrVtjjjtjtdd}tj|d\}}d|jt |jddi}t j |St d|dS)Nr )dimresultsr>)class probabilityz-Requested unsupported ContentType in Accept: ) JSON_CONTENT_TYPEr%nn functionalsoftmaxtensorresponsetopkitemroundjsondumpsrC)prediction_outputacceptpredtop_p top_classxrrr output_fnhs  rc)8argparser[loggingr2sysr%torch.distributed distributeddisttorch.nnrStorch.nn.functionalrTF torch.optimoptimtorch.utils.dataZtorch.utils.data.distributedrr torchvisionpandaspdnumpynpPILr monai.configrmonai.transformsrrrr r r r r monai.networks.netsr getLoggerrr?setLevelDEBUG addHandler StreamHandlerstdoutrr,NUMPY_CONTENT_TYPErRr:rJrMrcrrrrs<      (