红外目标在cnn各层的特征图可视化

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)

15x15 kernel size

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))

add a new activation layer!

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))

Lets add a new activation layer!

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))

add a new max pooling layer!

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))

activate then pool!

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))

activate then pool!

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))

activate then pool!

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))

activate then pool!

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))

Lets activate then pool!

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))

activate then pool!

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))

activate then pool!

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))

activate then pool!

model.add(Activation(‘relu’))
model.add(MaxPooling2D(pool_size=(2,2)))

visualize_cat(model, tar)

你可能感兴趣的:(深度学习)