QiaoranC / tf_ResNeSt_RegNet_model

tensorflow 2.x version of ResNeSt,RegNet,DETR
129 stars 31 forks source link

TypeError: string indices must be integers #15

Open HichemAK opened 4 years ago

HichemAK commented 4 years ago

When trying this example code given for RegNet models:

#RegNetY600
model = get_model(model_name="RegNet",input_shape=input_shape,n_classes=n_classes,
                verbose=True,fc_activation=fc_activation,stage_depth=[1,3,7,4],
                stage_width=[48,112,256,608],stage_G=16,SEstyle_atten="SE")

This error shows up:


TypeError Traceback (most recent call last)

in () ----> 1 build_model() 1 frames in build_model() 31 x = img_augmentation(inputs) 32 #RegNetY600 ---> 33 model = get_model(model_name='regnety400') 34 # x = layers.GlobalAveragePooling2D()(x) 35 # x = layers.Dense(1)(x) /content/models/model_factory.py in get_model(model_name, input_shape, n_classes, verbose, dropout_rate, fc_activation, **kwargs) 93 n_classes=n_classes, dropout_rate=dropout_rate, fc_activation=fc_activation, 94 stage_depth=regnet_parameters[model_name['stage_depth']],stage_width=regnet_parameters[model_name['stage_width']],\ ---> 95 stage_G=regnet_parameters[model_name['stage_G']],SEstyle_atten=regnet_parameters[model_name['SEstyle_atten']],**kwargs).build() 96 97 if model_name in resnest3d_parameters.keys(): TypeError: string indices must be integers
HichemAK commented 4 years ago

In the file model_factory.py line 91:

    elif model_name in regnet_parameters.keys():
        model = RegNet(verbose=verbose, input_shape=input_shape,
        n_classes=n_classes, dropout_rate=dropout_rate, fc_activation=fc_activation,
       stage_depth=regnet_parameters[model_name['stage_depth']],stage_width=regnet_parameters[model_name['stage_width']],\
stage_G=regnet_parameters[model_name['stage_G']],SEstyle_atten=regnet_parameters[model_name['SEstyle_atten']],**kwargs).build()

We could try to replace regnet_parameters[model_name['stage_depth']] by regnet_parameters[model_name]['stage_depth'] and do the same for the remaining arguments, but another error, then, occurs:


TypeError Traceback (most recent call last)

in () ----> 1 build_model() 1 frames /content/models/model_factory.py in get_model(model_name, input_shape, n_classes, verbose, dropout_rate, fc_activation, **kwargs) 93 n_classes=n_classes, dropout_rate=dropout_rate, fc_activation=fc_activation, 94 stage_depth=regnet_parameters[model_name]['stage_depth'],stage_width=regnet_parameters[model_name]['stage_width'],\ ---> 95 stage_G=regnet_parameters[model_name]['stage_G'],SEstyle_atten=regnet_parameters[model_name]['SEstyle_atten'],**kwargs).build() 96 97 if model_name in resnest3d_parameters.keys(): TypeError: type object got multiple values for keyword argument 'stage_depth'