from keras.layers import Convolution2D, MaxPooling2D, Activation
from keras.models import Sequential
import numpy as np
import matplotlib.pyplot as plt
import cv2
tar = cv2.imread(‘G:/xlx/tar.bmp’)
plt.imshow(tar )
tar.shape
创建一个带有1个卷积层的模型
model = Sequential()
model.add(Convolution2D(3, # 卷积核尺寸
3, # y 的维度
3, # x 的维度
input_shape=tar.shape))
#Keras大多数批处理图像。
tar_batch = np.expand_dims(tar,axis=0)
conv_tar = model.predict(tar_batch)
def visualize_tar(model, tar):
tar_batch = np.expand_dims(tar,axis=0)
conv_tar = model.predict(tar_batch)
conv_tar = np.squeeze(conv_tar, axis=0)
plt.imshow(conv_tar)
visualize_tar(model, tar)
10x10 Kernel Convtar
model = Sequential()
model.add(Convolution2D(3, # number of filter layers
10, # y dimension of kernel
10, # x dimension of kernel
input_shape=tar.shape))
visualize_tar(model, tar)
with 1 filter tar
def nice_tar_printer(model, tar):
‘’‘prints the tar as a 2d array’’’
tar_batch = np.expand_dims(tar,axis=0)
conv_tar2 = model.predict(tar_batch)
conv_tar2 = np.squeeze(conv_tar2, axis=0)
conv_tar2 = conv_tar2.reshape(conv_tar2.shape[:2])
plt.imshow(conv_tar2)
model = Sequential()
model.add(Convolution2D(1, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
nice_tar_printer(model, tar)
model = Sequential()
model.add(Convolution2D(1, # number of filter layers
15, # y dimension of kernel
15, # x dimension of kernel
input_shape=tar.shape))
nice_tar_printer(model, tar)
add a relu activation
model = Sequential()
model.add(Convolution2D(1, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
model.add(Activation(‘relu’))
nice_tar_printer(model, tar)
model = Sequential()
model.add(Convolution2D(3, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
model.add(Activation(‘relu’))
visualize_tar(model, tar)
Max Pooling
model = Sequential()
model.add(Convolution2D(1, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
model.add(MaxPooling2D(pool_size=(5,5)))
nice_tar_printer(model, tar)
model = Sequential()
model.add(Convolution2D(3, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
model.add(MaxPooling2D(pool_size=(5,5)))
visualize_tar(model, tar)
Activation then pooling
model = Sequential()
model.add(Convolution2D(1, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
model.add(Activation(‘relu’))
model.add(MaxPooling2D(pool_size=(5,5)))
nice_tar_printer(model, tar)
model = Sequential()
model.add(Convolution2D(3, # number of filter layers
3, # y dimension of kernel (we’re going for a 3x3 kernel)
3, # x dimension of kernel
input_shape=tar.shape))
model.add(Activation(‘relu’))
model.add(MaxPooling2D(pool_size=(5,5)))
visualize_tar(model, tar)
tar after the convolutional and pooling stages of LeNet
model = Sequential()
model.add(Convolution2D(1, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
model.add(Activation(‘relu’))
model.add(MaxPooling2D(pool_size=(3,3)))
model.add(Convolution2D(1, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
model.add(Activation(‘relu’))
model.add(MaxPooling2D(pool_size=(3,3)))
nice_tar_printer(model, tar)
model = Sequential()
model.add(Convolution2D(3, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
model.add(Activation(‘relu’))
model.add(MaxPooling2D(pool_size=(3,3)))
model.add(Convolution2D(1, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
model.add(Activation(‘relu’))
model.add(MaxPooling2D(pool_size=(2,2)))
nice_tar_printer(model,tar)
model = Sequential()
model.add(Convolution2D(3, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
model.add(Activation(‘relu’))
model.add(MaxPooling2D(pool_size=(3,3)))
model.add(Convolution2D(3, # number of filter layers
3, # y dimension of kernel
3, # x dimension of kernel
input_shape=tar.shape))
model.add(Activation(‘relu’))
model.add(MaxPooling2D(pool_size=(2,2)))
visualize_cat(model, tar)