@@ -3218,4 +3218,360 @@ def study_convolution_dilation(self, img_name, factor=0):
32183218 tmp = np .swapaxes (tmp , 1 , 2 )
32193219 cv2 .imwrite ("tmp/test_filter" + str (i ) + ".jpg" , tmp * 255 )
32203220
3221- #####################################################################################################################################
3221+ #####################################################################################################################################
3222+
3223+
3224+
3225+
3226+ #####################################################################################################################################
3227+ @warning_checks (None , None , type = None , post_trace = True )
3228+ @error_checks (None , None , type = ["in" , ["max" , "avg" ]], post_trace = True )
3229+ @accepts ("self" , str , type = str , post_trace = True )
3230+ @TraceFunction (trace_args = True , trace_rv = True )
3231+ def study_pooling_type (self , img_name , type = "max" ):
3232+ """
3233+ Visualize the effect of a parameter in convolution - KErnel size
3234+
3235+ Args:
3236+ img_name (str): Path to test images
3237+ kernel_size(int): Convolution kernel shape
3238+
3239+ Returns:
3240+ None
3241+
3242+ """
3243+
3244+ network = [];
3245+ if (type == "max" ):
3246+ network .append (self .max_pooling (kernel_size = 2 ));
3247+ else :
3248+ network .append (self .average_pooling (kernel_size = 2 ));
3249+
3250+
3251+ self .Compile_Network (network ,
3252+ data_shape = (3 , 224 , 224 ),
3253+ use_gpu = False ,
3254+ network_initializer = "xavier_normal" ,
3255+ debug = False );
3256+
3257+ self .system_dict ["local" ]["transforms_test" ] = [];
3258+ self .system_dict ["local" ]["transforms_test" ].append (transforms .Resize (size = (224 , 224 )));
3259+ self .system_dict ["local" ]["transforms_test" ].append (transforms .ToTensor ());
3260+ self .system_dict ["local" ]["data_transforms" ]["test" ] = transforms .Compose (self .system_dict ["local" ]["transforms_test" ]);
3261+
3262+
3263+ img = image .imread (img_name )
3264+ img = self .system_dict ["local" ]["data_transforms" ]["test" ](img ).expand_dims (axis = 0 );
3265+ img = img .copyto (self .system_dict ["local" ]["ctx" ][0 ]);
3266+ print ("Input shape - {}" .format (img .shape ))
3267+ outputs = self .system_dict ["local" ]["model" ].forward (img );
3268+ print ("Output shape - {}" .format (outputs .shape ))
3269+
3270+
3271+ if (os .path .isdir ("tmp" )):
3272+ os .system ("rm -r tmp" );
3273+ os .system ("mkdir tmp" );
3274+ else :
3275+ os .system ("mkdir tmp" );
3276+
3277+
3278+ out = outputs [0 ];
3279+ for i in range (out .shape [0 ]):
3280+ tmp = out [i ].asnumpy ()
3281+ cv2 .imwrite ("tmp/test" + str (i ) + ".jpg" , tmp * 255 )
3282+
3283+ #weights = self.system_dict["local"]["model"][0].weight.data().asnumpy()
3284+
3285+ #for i in range(weights.shape[0]):
3286+ # tmp = weights[i]
3287+ # tmp = np.swapaxes(tmp, 0, 1)
3288+ # tmp = np.swapaxes(tmp, 1, 2)
3289+ # cv2.imwrite("tmp/test_filter" + str(i) + ".jpg", tmp*255)
3290+
3291+ #####################################################################################################################################
3292+
3293+
3294+
3295+ #####################################################################################################################################
3296+ @warning_checks (None , None , kernel_size = None , type = None , post_trace = False )
3297+ @error_checks (None , None , kernel_size = ["gt" , 0 ], type = ["in" , ["max" , "avg" ]], post_trace = False )
3298+ @accepts ("self" , str , kernel_size = [int , tuple ], type = str , post_trace = False )
3299+ #@TraceFunction(trace_args=True, trace_rv=True)
3300+ def study_pooling_kernels (self , img_name , kernel_size = 4 , type = "avg" ):
3301+ """
3302+ Visualize the effect of a parameter in convolution - KErnel size
3303+
3304+ Args:
3305+ img_name (str): Path to test images
3306+ kernel_size(int): Convolution kernel shape
3307+
3308+ Returns:
3309+ None
3310+
3311+ """
3312+
3313+ network = [];
3314+ if (type == "max" ):
3315+ network .append (self .max_pooling (kernel_size = kernel_size ));
3316+ else :
3317+ network .append (self .average_pooling (kernel_size = kernel_size ));
3318+
3319+
3320+ self .Compile_Network (network ,
3321+ data_shape = (3 , 224 , 224 ),
3322+ use_gpu = False ,
3323+ network_initializer = "xavier_normal" ,
3324+ debug = False );
3325+
3326+
3327+ self .system_dict ["local" ]["transforms_test" ] = [];
3328+ self .system_dict ["local" ]["transforms_test" ].append (transforms .Resize (size = (224 , 224 )));
3329+ self .system_dict ["local" ]["transforms_test" ].append (transforms .ToTensor ());
3330+ self .system_dict ["local" ]["data_transforms" ]["test" ] = transforms .Compose (self .system_dict ["local" ]["transforms_test" ]);
3331+
3332+
3333+ img = image .imread (img_name )
3334+ img = self .system_dict ["local" ]["data_transforms" ]["test" ](img ).expand_dims (axis = 0 );
3335+ img = img .copyto (self .system_dict ["local" ]["ctx" ][0 ]);
3336+ print ("Input shape - {}" .format (img .shape ))
3337+ outputs = self .system_dict ["local" ]["model" ].forward (img );
3338+ print ("Output shape - {}" .format (outputs .shape ))
3339+
3340+
3341+ if (os .path .isdir ("tmp" )):
3342+ os .system ("rm -r tmp" );
3343+ os .system ("mkdir tmp" );
3344+ else :
3345+ os .system ("mkdir tmp" );
3346+
3347+
3348+ out = outputs [0 ];
3349+ for i in range (out .shape [0 ]):
3350+ tmp = out [i ].asnumpy ()
3351+ cv2 .imwrite ("tmp/test" + str (i ) + ".jpg" , tmp * 255 )
3352+
3353+ #weights = self.system_dict["local"]["model"][0].weight.data().asnumpy()
3354+
3355+ #for i in range(weights.shape[0]):
3356+ # tmp = weights[i]
3357+ # tmp = np.swapaxes(tmp, 0, 1)
3358+ # tmp = np.swapaxes(tmp, 1, 2)
3359+ # cv2.imwrite("tmp/test_filter" + str(i) + ".jpg", tmp*255)
3360+
3361+ #####################################################################################################################################
3362+
3363+
3364+
3365+
3366+ #####################################################################################################################################
3367+ @warning_checks (None , None , stride = None , type = None , post_trace = False )
3368+ @error_checks (None , None , stride = ["gt" , 0 ], type = ["in" , ["max" , "avg" ]], post_trace = False )
3369+ @accepts ("self" , str , stride = [int , tuple ], type = str , post_trace = False )
3370+ #@TraceFunction(trace_args=True, trace_rv=True)
3371+ def study_pooling_stride (self , img_name , stride = 4 , type = "avg" ):
3372+ """
3373+ Visualize the effect of a parameter in convolution - KErnel size
3374+
3375+ Args:
3376+ img_name (str): Path to test images
3377+ kernel_size(int): Convolution kernel shape
3378+
3379+ Returns:
3380+ None
3381+
3382+ """
3383+
3384+ network = [];
3385+ if (type == "max" ):
3386+ network .append (self .max_pooling (kernel_size = 2 , stride = stride ));
3387+ else :
3388+ network .append (self .average_pooling (kernel_size = 2 , stride = stride ));
3389+
3390+
3391+ self .Compile_Network (network ,
3392+ data_shape = (3 , 224 , 224 ),
3393+ use_gpu = False ,
3394+ network_initializer = "xavier_normal" ,
3395+ debug = False );
3396+
3397+
3398+ self .system_dict ["local" ]["transforms_test" ] = [];
3399+ self .system_dict ["local" ]["transforms_test" ].append (transforms .Resize (size = (224 , 224 )));
3400+ self .system_dict ["local" ]["transforms_test" ].append (transforms .ToTensor ());
3401+ self .system_dict ["local" ]["data_transforms" ]["test" ] = transforms .Compose (self .system_dict ["local" ]["transforms_test" ]);
3402+
3403+
3404+ img = image .imread (img_name )
3405+ img = self .system_dict ["local" ]["data_transforms" ]["test" ](img ).expand_dims (axis = 0 );
3406+ img = img .copyto (self .system_dict ["local" ]["ctx" ][0 ]);
3407+ print ("Input shape - {}" .format (img .shape ))
3408+ outputs = self .system_dict ["local" ]["model" ].forward (img );
3409+ print ("Output shape - {}" .format (outputs .shape ))
3410+
3411+
3412+ if (os .path .isdir ("tmp" )):
3413+ os .system ("rm -r tmp" );
3414+ os .system ("mkdir tmp" );
3415+ else :
3416+ os .system ("mkdir tmp" );
3417+
3418+
3419+ out = outputs [0 ];
3420+ for i in range (out .shape [0 ]):
3421+ tmp = out [i ].asnumpy ()
3422+ cv2 .imwrite ("tmp/test" + str (i ) + ".jpg" , tmp * 255 )
3423+
3424+ #weights = self.system_dict["local"]["model"][0].weight.data().asnumpy()
3425+
3426+ #for i in range(weights.shape[0]):
3427+ # tmp = weights[i]
3428+ # tmp = np.swapaxes(tmp, 0, 1)
3429+ # tmp = np.swapaxes(tmp, 1, 2)
3430+ # cv2.imwrite("tmp/test_filter" + str(i) + ".jpg", tmp*255)
3431+
3432+ #####################################################################################################################################
3433+
3434+
3435+
3436+ #####################################################################################################################################
3437+ @warning_checks (None , None , padding = None , type = None , post_trace = False )
3438+ @error_checks (None , None , padding = ["gte" , 0 ], type = ["in" , ["max" , "avg" ]], post_trace = False )
3439+ @accepts ("self" , str , padding = [int , tuple ], type = str , post_trace = False )
3440+ #@TraceFunction(trace_args=True, trace_rv=True)
3441+ def study_pooling_padding (self , img_name , padding = 1 , type = "avg" ):
3442+ """
3443+ Visualize the effect of a parameter in convolution - KErnel size
3444+
3445+ Args:
3446+ img_name (str): Path to test images
3447+ kernel_size(int): Convolution kernel shape
3448+
3449+ Returns:
3450+ None
3451+
3452+ """
3453+
3454+ network = [];
3455+ if (type == "max" ):
3456+ network .append (self .max_pooling (kernel_size = 2 , padding = padding ));
3457+ else :
3458+ network .append (self .average_pooling (kernel_size = 2 , padding = padding ));
3459+
3460+
3461+ self .Compile_Network (network ,
3462+ data_shape = (3 , 224 , 224 ),
3463+ use_gpu = False ,
3464+ network_initializer = "xavier_normal" ,
3465+ debug = False );
3466+
3467+
3468+ self .system_dict ["local" ]["transforms_test" ] = [];
3469+ self .system_dict ["local" ]["transforms_test" ].append (transforms .Resize (size = (224 , 224 )));
3470+ self .system_dict ["local" ]["transforms_test" ].append (transforms .ToTensor ());
3471+ self .system_dict ["local" ]["data_transforms" ]["test" ] = transforms .Compose (self .system_dict ["local" ]["transforms_test" ]);
3472+
3473+
3474+ img = image .imread (img_name )
3475+ img = self .system_dict ["local" ]["data_transforms" ]["test" ](img ).expand_dims (axis = 0 );
3476+ img = img .copyto (self .system_dict ["local" ]["ctx" ][0 ]);
3477+ print ("Input shape - {}" .format (img .shape ))
3478+ outputs = self .system_dict ["local" ]["model" ].forward (img );
3479+ print ("Output shape - {}" .format (outputs .shape ))
3480+
3481+
3482+ if (os .path .isdir ("tmp" )):
3483+ os .system ("rm -r tmp" );
3484+ os .system ("mkdir tmp" );
3485+ else :
3486+ os .system ("mkdir tmp" );
3487+
3488+
3489+ out = outputs [0 ];
3490+ for i in range (out .shape [0 ]):
3491+ tmp = out [i ].asnumpy ()
3492+ cv2 .imwrite ("tmp/test" + str (i ) + ".jpg" , tmp * 255 )
3493+
3494+ #weights = self.system_dict["local"]["model"][0].weight.data().asnumpy()
3495+
3496+ #for i in range(weights.shape[0]):
3497+ # tmp = weights[i]
3498+ # tmp = np.swapaxes(tmp, 0, 1)
3499+ # tmp = np.swapaxes(tmp, 1, 2)
3500+ # cv2.imwrite("tmp/test_filter" + str(i) + ".jpg", tmp*255)
3501+
3502+ #####################################################################################################################################
3503+
3504+
3505+
3506+
3507+ #####################################################################################################################################
3508+ @warning_checks (None , None , dilation = None , type = None , post_trace = False )
3509+ @error_checks (None , None , dilation = ["gt" , 0 ], type = ["in" , ["max" , "avg" ]], post_trace = False )
3510+ @accepts ("self" , str , dilation = [int , tuple ], type = str , post_trace = False )
3511+ #@TraceFunction(trace_args=True, trace_rv=True)
3512+ def study_pooling_dilation (self , img_name , dilation = 1 , type = "avg" ):
3513+ """
3514+ Visualize the effect of a parameter in convolution - KErnel size
3515+
3516+ Args:
3517+ img_name (str): Path to test images
3518+ kernel_size(int): Convolution kernel shape
3519+
3520+ Returns:
3521+ None
3522+
3523+ """
3524+
3525+ network = [];
3526+ if (type == "max" ):
3527+ network .append (self .max_pooling (kernel_size = 2 , dilation = dilation ));
3528+ else :
3529+ network .append (self .average_pooling (kernel_size = 2 , dilation = dilation ));
3530+
3531+
3532+ self .Compile_Network (network ,
3533+ data_shape = (3 , 224 , 224 ),
3534+ use_gpu = False ,
3535+ network_initializer = "xavier_normal" ,
3536+ debug = False );
3537+
3538+
3539+ self .system_dict ["local" ]["transforms_test" ] = [];
3540+ self .system_dict ["local" ]["transforms_test" ].append (transforms .Resize (size = (224 , 224 )));
3541+ self .system_dict ["local" ]["transforms_test" ].append (transforms .ToTensor ());
3542+ self .system_dict ["local" ]["data_transforms" ]["test" ] = transforms .Compose (self .system_dict ["local" ]["transforms_test" ]);
3543+
3544+
3545+ img = image .imread (img_name )
3546+ img = self .system_dict ["local" ]["data_transforms" ]["test" ](img ).expand_dims (axis = 0 );
3547+ img = img .copyto (self .system_dict ["local" ]["ctx" ][0 ]);
3548+ print ("Input shape - {}" .format (img .shape ))
3549+ outputs = self .system_dict ["local" ]["model" ].forward (img );
3550+ print ("Output shape - {}" .format (outputs .shape ))
3551+
3552+
3553+ if (os .path .isdir ("tmp" )):
3554+ os .system ("rm -r tmp" );
3555+ os .system ("mkdir tmp" );
3556+ else :
3557+ os .system ("mkdir tmp" );
3558+
3559+
3560+ out = outputs [0 ];
3561+ for i in range (out .shape [0 ]):
3562+ tmp = out [i ].asnumpy ()
3563+ cv2 .imwrite ("tmp/test" + str (i ) + ".jpg" , tmp * 255 )
3564+
3565+ #weights = self.system_dict["local"]["model"][0].weight.data().asnumpy()
3566+
3567+ #for i in range(weights.shape[0]):
3568+ # tmp = weights[i]
3569+ # tmp = np.swapaxes(tmp, 0, 1)
3570+ # tmp = np.swapaxes(tmp, 1, 2)
3571+ # cv2.imwrite("tmp/test_filter" + str(i) + ".jpg", tmp*255)
3572+
3573+ #####################################################################################################################################
3574+
3575+
3576+
3577+
0 commit comments