我是深度学习的新手。我正在尝试为以下代码生成ROC曲线。我使用的是Keras。类别数量为10,图像为大小为1001003的RGB图像。
target_size=(100,100,3)train_generator = train_datagen.flow_from_directory('path', target_size=target_size[:-1], batch_size=16, class_mode='categorical', subset='training', seed=random_seed)valid_generator = ...test_generator = ...n_classes = len(set(train_generator.classes))print(n_classes)input_layer = keras.layers.Input(shape=target_size)conv2d_1 = keras.layers.Conv2D(filters=64, kernel_size=(3,3), strides=1, padding='same', activation='relu', kernel_initializer='he_normal')(input_layer)batchnorm_1 = keras.layers.BatchNormalization()(conv2d_1)maxpool1=keras.layers.MaxPool2D(pool_size=(2,2))(batchnorm_1)conv2d_2 = keras.layers.Conv2D(filters=32, kernel_size=(3,3), strides=1, padding='same', activation='relu', kernel_initializer='he_normal')(maxpool1)batchnorm_2 = keras.layers.BatchNormalization()(conv2d_2)maxpool2=keras.layers.MaxPool2D(pool_size=(2,2))(batchnorm_2)flatten = keras.layers.Flatten()(maxpool2)dense_1 = keras.layers.Dense(256, activation='relu')(flatten)dense_2 = keras.layers.Dense(n_classes, activation='softmax')(dense_1)model = keras.models.Model(input_layer, dense_3)model.compile(optimizer=keras.optimizers.Adam(0.001), loss='categorical_crossentropy', metrics=['acc'])model.summary()model.fit_generator(generator=train_generator, validation_data=valid_generator, epochs=200) score = model.evaluate_generator(test_generator)print(score)
我想看到曲线并生成ROC曲线。请帮助我。
回答:
在您的代码中添加以下代码。
希望这能帮到您。