In [1]:
from __future__ import print_function
import keras
from keras.layers import Dense, Conv2D, BatchNormalization, Activation
from keras.layers import AveragePooling2D, Input, Flatten, Merge
from keras.optimizers import Adam
from keras.callbacks import ModelCheckpoint, LearningRateScheduler
from keras.callbacks import ReduceLROnPlateau
from keras.preprocessing.image import ImageDataGenerator
from keras.regularizers import l2
from keras import backend as K
from keras.models import Model
from keras.datasets import cifar10
import numpy as np
import os
In [2]:
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
In [23]:
x_train.shape[1:]
Out[23]:
In [26]:
np.unique(y_train)
Out[26]:
In [29]:
import matplotlib.pyplot as plt
import PIL.Image as Image
In [17]:
index = 12
red = Image.fromarray(x_train[index,:,:,0]) #必须调用这个函数,把数组转成image的通道
green = Image.fromarray(x_train[index,:,:,1])
blue = Image.fromarray(x_train[index,:,:,2])
image = Image.merge("RGB", (red, green, blue)) #把image通道合并成图片
plt.imshow(image)
plt.show()
In [54]:
inp = Input(shape=x_train.shape[1:])
out = Conv2D(32,3)(inp)
out = Conv2D(16,3)(inp)
out = Flatten()(out)
out = Dense(10, activation='softmax')(out)
model = Model(inp,out)
model.compile(loss='categorical_crossentropy',
optimizer=Adam(lr=1e-4),
metrics=['accuracy'])
model.summary()
In [46]:
y_train = keras.utils.to_categorical(y_train, 10)
In [48]:
y_train.shape
Out[48]:
In [55]:
batch_size = 32
epochs = 200
model.fit(x_train[1:1000,:,:,:],y_train[1:1000,:],batch_size=batch_size, epochs=epochs,verbose=0)
Out[55]:
In [56]:
model.evaluate(x_train,y_train)
Out[56]:
In [ ]: