【问题标题】:Python Keras - How to input custom image?Python Keras - 如何输入自定义图像?
【发布时间】:2018-07-27 22:18:10
【问题描述】:
    from keras import *
import os
import numpy as np
from keras.models import Sequential
from keras.layers import Activation, Dropout, Flatten, Dense
from keras.preprocessing.image import ImageDataGenerator
from keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D
from keras import optimizers

# Collecting data:
img_width, img_height = 150, 150
training_data_dir = "train"
testing_data_dir = "test"
batch_size = 16

# prepare data augmentation configuration
train_datagen = ImageDataGenerator(
    rescale=1. / 255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1. / 255)

train_generator = train_datagen.flow_from_directory(
    training_data_dir,
    target_size=(img_height, img_width),
    batch_size=batch_size,
    class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
    testing_data_dir,
    target_size=(img_height, img_width),
    batch_size=batch_size,
    class_mode='binary')

# Building model:
model = Sequential()
model.add(Convolution2D(32, (3, 3), input_shape=(img_width, img_height,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Convolution2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Convolution2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))

model.compile(loss="binary_crossentropy",
              optimizer="rmsprop",
              metrics=["accuracy"])

#  Training model:
nb_epoch = 1
nb_train_samples = 2048
nb_validation_samples = 832

model.fit_generator(
        train_generator,
        samples_per_epoch=nb_train_samples,
        epochs=nb_epoch,
        validation_data=validation_generator,
        validation_steps=nb_validation_samples,
        steps_per_epoch=64)

我的代码在这里创建了一个神经网络,用于根据训练过的图片进行图像分类,我在整个互联网上进行了搜索,但我无法理解的一件事是如何输入我自己的图像文件来测试网络和让它打印输出。例如,如果网络用于对狗和猫进行分类,我不确定如何对我输入狗或猫的 jpg/png 文件的位以及输出它是哪个类的程序进行编码。请帮忙?

【问题讨论】:

    标签: python tensorflow keras


    【解决方案1】:

    您调用模型的predict 方法。 https://keras.io/models/model/#predict

    【讨论】:

    • 再次来自文档: x:输入数据,作为 Numpy 数组(如果模型有多个输入,则为 Numpy 数组列表)。在线查看一些基本的 keras 教程,那里有很多很好的示例。
    • This 看起来不错,可以帮助您入门。祝你好运!
    猜你喜欢
    • 2018-08-09
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 2023-04-05
    • 2019-08-08
    相关资源
    最近更新 更多