ValueError: Unknown layer: Functional

ValueError: Unknown layer: Functional,第1张

ValueError: Unknown layer: Functional

Rebuilt the network from scratch:

image_size = (212, 212)batch_size = 32data_augmentation = keras.Sequential(    [        layers.experimental.preprocessing.RandomFlip("horizontal_and_vertical"),        layers.experimental.preprocessing.RandomRotation(0.8),    ])def make_model(input_shape, num_classes):    inputs = keras.Input(shape=input_shape)    # Image augmentation block    x = data_augmentation(inputs)    # Entry block    x = layers.experimental.preprocessing.Rescaling(1.0 / 255)(x)    x = layers.Conv2D(32, 3, strides=2, padding="same")(x)    x = layers.BatchNormalization()(x)    x = layers.Activation("relu")(x)    x = layers.Conv2D(64, 3, padding="same")(x)    x = layers.BatchNormalization()(x)    x = layers.Activation("relu")(x)    previous_block_activation = x  # Set aside residual    for size in [128, 256, 512, 728]:        x = layers.Activation("relu")(x)        x = layers.SeparableConv2D(size, 3, padding="same")(x)        x = layers.BatchNormalization()(x)        x = layers.Activation("relu")(x)        x = layers.SeparableConv2D(size, 3, padding="same")(x)        x = layers.BatchNormalization()(x)        x = layers.MaxPooling2D(3, strides=2, padding="same")(x)        # Project residual        residual = layers.Conv2D(size, 1, strides=2, padding="same")( previous_block_activation        )        x = layers.add([x, residual])  # Add back residual        previous_block_activation = x  # Set aside next residual    x = layers.SeparableConv2D(1024, 3, padding="same")(x)    x = layers.BatchNormalization()(x)    x = layers.Activation("relu")(x)    x = layers.GlobalAveragePooling2D()(x)    if num_classes == 2:        activation = "sigmoid"        units = 1    else:        activation = "softmax"        units = num_classes    x = layers.Dropout(0.5)(x)    outputs = layers.Dense(units, activation=activation)(x)    return keras.Model(inputs, outputs)model = make_model(input_shape=image_size + (3,), num_classes=2)keras.utils.plot_model(model, show_shapes=False)

Loaded the weights:

model.load_weights('save_at_47.h5')

And ran a prediction on an image:

# Running inference on new dataimg = keras.preprocessing.image.load_img(    "le_image.jpg", target_size=image_size)img_array = keras.preprocessing.image.img_to_array(img)img_array = tf.expand_dims(img_array, 0)  # Create batch axispredictions = model.predict(img_array)score = predictions[0]print(    "This image is %.2f percent negative and %.2f percent positive."    % (100 * (1 - score), 100 * score))


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4881279.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-11
下一篇2022-11-11

发表评论

登录后才能评论

评论列表(0条)

    保存