如何解决在创建 VGGSEGNET 时出现以下错误 在实施 VGGSEGNET 时出现以下错误
在实施 VGGSEGNET 时出现以下错误
下面是 VGGSEGNET 代码
函数调用就像 - model=VGGSegnet(n_classes=1,input_height=224,input_width=224) 在遵循两个版本时出现相同的错误
tf version=2.4.1 & 2.2.0
keras 版本=2.4.3 & 2.4.3
python=3.7 和 python 3.8
def VGGSegnet(n_classes,input_height,input_width,vgg_level=3,pretrained_weights = None):
img_input = Input(shape=(input_height,3 ))
x = Conv2D(64,(3,3),activation='relu',padding='same',name='block1_conv1',data_format='channels_last')(img_input)
x = Conv2D(64,name='block1_conv2',data_format='channels_last')(x)
x = MaxPooling2D((2,2),strides=(2,name='block1_pool1',data_format='channels_last')(x)
f1 = x
x = Conv2D(128,name='block2_conv1',data_format='channels_last')(x)
x = Conv2D(128,name='block2_conv2',name='block2_pool',data_format='channels_last')(x)
f2 = x
x = Conv2D(256,name='block3_conv1',data_format='channels_last')(x)
x = Conv2D(256,name='block3_conv2',name='block3_conv3',name='block3_pool1',data_format='channels_last')(x)
f3 = x
x = Conv2D(512,name='block4_conv1',data_format='channels_last')(x)
x = Conv2D(512,name='block4_conv2',name='block4_conv3',name='block4_pool1',data_format='channels_last')(x)
f4 = x
x = Conv2D(512,name='block5_conv1',name='block5_conv2',name='block5_conv3',name='block5_pool1',data_format='channels_last')(x)
f5 = x
x = Flatten(name='flatten')(x)
x = Dense(4096,name='fc1')(x)
x = Dense(4096,name='fc2')(x)
x = Dense(1000,activation='softmax',name='predictions')(x)
vgg = Model(img_input,x)
vgg.load_weights("image-segmentation-keras-py3-master/Models/vgg16_weights_th_dim_ordering_th_kernels.hdf5")
levels = [f1,f2,f3,f4,f5]
o = levels[vgg_level]
o = ZeroPadding2D((1,1),data_format='channels_last')(o)
o = Conv2D(512,padding='valid',data_format='channels_last')(o)
o = BatchNormalization()(o)
o = UpSampling2D((2,data_format='channels_last')(o)
o = ZeroPadding2D((1,data_format='channels_last')(o)
o = Conv2D(256,data_format='channels_last')(o)
o = Conv2D(128,data_format='channels_last')(o)
o = Conv2D(64,data_format='channels_last')(o)
o = BatchNormalization()(o)
o = UpSampling2D((2,data_format='channels_last')(o)
o = Conv2D(32,data_format='channels_last')(o)
o = BatchNormalization()(o)
#o = UpSampling2D((2,data_format='channels_last')(o)
#o = ZeroPadding2D((1,data_format='channels_last')(o)
o = Conv2D(n_classes,data_format='channels_last')(o)
#o = BatchNormalization()(o)
o_shape = Model(img_input,o).output_shape
#outputHeight = o_shape[2]
#outputWidth = o_shape[3]
outputHeight = o_shape[2]
outputWidth = o_shape[1]
#o = (Reshape((outputHeight*outputWidth,-1)))(o)
#o = (Permute((1,2)))(o)
o = (Activation('sigmoid'))(o)
model = Model(img_input,o)
model.outputWidth = outputWidth
model.outputHeight = outputHeight
if(pretrained_weights):
model.load_weights(pretrained_weights)
return model
错误块
Traceback (most recent call last):
File "/scratch/pkasar.dbatu/training/VGGSEGNET_224_224_working_on_20_03_21_on_augmented_images_of_size_256_by_256.py",line 248,in <module>
model=VGGSegnet(n_classes=1,input_width=224)
File "/scratch/pkasar.dbatu/training/VGGSEGNET_224_224_working_on_20_03_21_on_augmented_images_of_size_256_by_256.py",line 56,in VGGSegnet
vgg.load_weights("image-segmentation-keras-py3-master/Models/vgg16_weights_th_dim_ordering_th_kernels.hdf5")
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py",line 2234,in load_weights
hdf5_format.load_weights_from_hdf5_group(f,self.layers)
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/keras/saving/hdf5_format.py",line 710,in load_weights_from_hdf5_group
K.batch_set_value(weight_value_tuples)
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py",line 201,in wrapper
return target(*args,**kwargs)
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/keras/backend.py",line 3706,in batch_set_value
x.assign(np.asarray(value,dtype=dtype(x)))
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/distribute/values.py",line 781,in assign
return values_util.on_write_assign(
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/distribute/values_util.py",line 140,in on_write_assign
return var._update( # pylint: disable=protected-access
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/distribute/values.py",line 940,in _update
return self._update_cross_replica(update_fn,value,**kwargs)
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/distribute/values.py",line 893,in _update_cross_replica
return self.distribute_strategy.extended.update(
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/distribute/distribute_lib.py",line 2494,in update
return self._update(var,fn,args,kwargs,group)
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/distribute/mirrored_strategy.py",in _update
fn(v,*distribute_utils.select_replica_mirrored(i,args),File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py",line 572,in wrapper
return func(*args,**kwargs)
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/distribute/values_util.py",line 139,in <lambda>
assign_fn = lambda var,*a,**kw: var.assign(*a,**kw)
File "/home/pkasar.dbatu/.conda/envs/dl_new/lib/python3.8/site-packages/tensorflow/python/ops/resource_variable_ops.py",line 888,in assign
raise ValueError(
ValueError: Cannot assign to variable block1_conv1/kernel:0 due to variable shape (3,3,64) and value shape (3,64,3) are incompatible
我正在使用 iou 作为性能指标进行分段任务。
帮帮我。 提前致谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。