如何改变fashion_mnist形状

时间:2019-11-08 00:39:59

标签: keras

我通过“ fashion_mnist.load_data()”加载了Fahion_Mnist数据集,并尝试训练ResNet50神经网络。但是我不知道如何根据ResNet中的输入将数据集图像从(28,28,1)调整为(224,224,3)。

我正在使用Python 3,Keras 2.2.4

这是我的代码:

func makeRandomColor() -> UIColor {

    let fullRange : ClosedRange<CGFloat> = 0...255
    let pastelRange : ClosedRange<CGFloat> = 127...255

    let randomPastelRed     = CGFloat.random(in: pastelRange) / 255
    let randomPastelGreen   = CGFloat.random(in: pastelRange) / 255
    let randomPastelBlue    = CGFloat.random(in: pastelRange) / 255

    let randomRed           = CGFloat.random(in: fullRange) / 255
    let randomGreen         = CGFloat.random(in: fullRange) / 255
    let randomBlue          = CGFloat.random(in: fullRange) / 255

    let randomAlpha         = CGFloat.random(in: 0.6...1)

    return UIColor.init(dynamicProvider: { traitCollection in
        if traitCollection.userInterfaceStyle == .dark {
            return UIColor(
                red: randomRed,
                green: randomGreen,
                blue: randomBlue,
                alpha: randomAlpha
            )
        } else {
            return UIColor(
                red: randomPastelRed,
                green: randomPastelGreen,
                blue: randomPastelBlue,
                alpha: randomAlpha
            )
        }
    })

}

这是我跑步后收到的东西:

from __future__ import absolute_import, division, print_function
import tensorflow as tf
from tensorflow import keras# Helper libraries
import numpy as np
import matplotlib.pyplot as plt
import time
from tensorflow.python.keras import backend as K
from tensorflow.python.keras.models import Model
from tensorflow.python.keras.layers import Flatten, Dense, Dropout
from tensorflow.python.keras.applications.resnet50 import ResNet50, preprocess_input
from tensorflow.python.keras.optimizers import Adam
from tensorflow.python.keras.preprocessing.image import ImageDataGenerator
from tensorflow.python.keras.preprocessing import image
from PIL import Image

fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat','Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

IMAGE_SIZE    = (224,224)
NUM_CLASSES   = 10
BATCH_SIZE    = 8  # try reducing batch size or freeze more layers if your GPU runs out of memory
FREEZE_LAYERS = 2  # freeze the first this many layers for training
NUM_EPOCHS    = 20
WEIGHTS_FINAL = 'model_fashion_resnet.h5'

train_images = preprocess_input(train_images)
train_images = np.expand_dims(train_images, axis=0)

train_labels = preprocess_input(train_labels)
train_labels = np.expand_dims(train_labels, axis=0)

test_images = preprocess_input(test_images)
test_images = np.expand_dims(test_images, axis=0)

net = ResNet50(include_top=False, weights='imagenet', input_tensor=None,
           input_shape=(IMAGE_SIZE[0],IMAGE_SIZE[1],3))
x = net.output
x = Flatten()(x)
x = Dropout(0.5)(x)
output_layer = Dense(NUM_CLASSES, activation='softmax', name='softmax')(x)
model = Model(inputs=net.input, outputs=output_layer)
for layer in model.layers[:FREEZE_LAYERS]:
    layer.trainable = False
for layer in model.layers[FREEZE_LAYERS:]:
    layer.trainable = True
model.compile(optimizer=Adam(lr=1e-5), loss='categorical_crossentropy', metrics=['accuracy'])
print(model.summary())


inizio=time.time()


datagen = ImageDataGenerator(
    featurewise_center=True,
    featurewise_std_normalization=True,
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    horizontal_flip=True)



model.fit_generator(datagen.flow(train_images, train_labels, batch_size=BATCH_SIZE),
                steps_per_epoch=len(train_images) / BATCH_SIZE, epochs=NUM_EPOCHS)

如何更改MNIST图像,以便它们可以输入到ResNet50神经网络中?

0 个答案:

没有答案