问题描述
我正在尝试在 kaggle 上没有互联网的情况下使用 VGG16 :
要使用 keras-applications
我已经:
!pip install ../input/kerasapplications/Keras_Applications-1.0.8-py3-none-any.whl
from keras_applications.imagenet_utils import _obtain_input_shape as ois
使用像:
model = VGG16(include_top = True)
VGG16 定义:
def VGG16(
include_top=True,weights='../input/cassavaleafdiseasevgginference/vgg16_weights_tf_dim_ordering_tf_kernels.h5',input_tensor=None,input_shape=None,pooling=None,classes=1000,classifier_activation='softmax'):
input_shape = imagenet_utils.ois(
input_shape,default_size=224,min_size=32,data_format=backend.image_data_format(),require_flatten=include_top,weights=weights)
if input_tensor is None:
img_input = Input(shape=input_shape)
else:
if not backend.is_keras_tensor(input_tensor):
img_input = Input(tensor=input_tensor,shape=input_shape)
else:
img_input = input_tensor
# Block 1
x = Conv2D(
64,(3,3),activation='relu',padding='same',name='block1_conv1')(
img_input)
x = Conv2D(
64,name='block1_conv2')(x)
x = MaxPooling2D((2,2),strides=(2,name='block1_pool')(x)
# Block 2
x = Conv2D(
128,name='block2_conv1')(x)
x = Conv2D(
128,name='block2_conv2')(x)
x = MaxPooling2D((2,name='block2_pool')(x)
# Block 3
x = Conv2D(
256,name='block3_conv1')(x)
x = Conv2D(
256,name='block3_conv2')(x)
x = Conv2D(
256,name='block3_conv3')(x)
x = MaxPooling2D((2,name='block3_pool')(x)
# Block 4
x = Conv2D(
512,name='block4_conv1')(x)
x = Conv2D(
512,name='block4_conv2')(x)
x = Conv2D(
512,name='block4_conv3')(x)
x = MaxPooling2D((2,name='block4_pool')(x)
# Block 5
x = Conv2D(
512,name='block5_conv1')(x)
x = Conv2D(
512,name='block5_conv2')(x)
x = Conv2D(
512,name='block5_conv3')(x)
x = MaxPooling2D((2,name='block5_pool')(x)
if include_top:
# Classification block
x = Flatten(name='flatten')(x)
x = Dense(4096,name='fc1')(x)
x = Dense(4096,name='fc2')(x)
imagenet_utils.validate_activation(classifier_activation,weights)
x = Dense(classes,activation=classifier_activation,name='predictions')(x)
else:
if pooling == 'avg':
x = GlobalAveragePooling2D()(x)
elif pooling == 'max':
x = GlobalMaxPooling2D()(x)
if input_tensor is not None:
inputs = layer_utils.get_source_inputs(input_tensor)
else:
inputs = img_input
# Create model.
model = training.Model(inputs,x,name='vgg16')
model.load_weights(weights)
return model
但是当我尝试使用 _obtain_input_shape 时,我得到: 模块“keras.applications.imagenet_utils”没有属性“ois”
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)