keras卷積神經網路舉例

2021-09-29 20:33:39 字數 1942 閱讀 5622

# 特徵圖深度在增加(從32到128,但尺寸在變小)

from keras import layers

from keras import model

# 輸入尺寸為150*150*3,展平後是7*7*128

model = model.sequential()

# 二維卷積核(提取的圖塊大小)一般3*3=9個特徵向量,或5*5

# 卷積所計算的過濾器數,即第一層深度,32

model.add(layers.conv2d(32,(3,3),activation='relu',input_shape=(150,150,3)))

# 148*148*32

model.add(layers.maxpooling2d((2,2)))

# 74*74*32

model.add(layers.conv2d(64,(3,3),activation='relu'))

# 72*72*64

# 特徵圖深度增加(從32到64),特徵圖尺寸變小(從74到72)

model.add(layers.maxpooling2d((2,2)))

# 36*36*64

model.add(layers.conv2d(128,(3,3),activation='relu'))

# 34*34*128

model.add(layers.maxpooling2d((2,2)))

# 17*17*128

model.add(layers.conv2d(128,(3,3),activation='relu'))

# 15*15*128

model.add(layers.maxpooling2d((2,2)))

# 7*7*128

## 卷積後記得展平,因為影象是4維資料(樣本數、長、寬、顏色通道)

## rnn之後不需要展平,因為rnn的輸入是3維(樣本數、時間步、特徵)

model.add(layers.fltten())

# 6272

# 降低過擬合

# model.add(layers.dropout(0.5))

model.add(layers.dense(512,activation='relu'))

# 512

model.add(layers.dense(1,activation='sigmoid'))

# 1## 填充

# 通過padding設定填充,valid表示不使用填充,same表示填充後輸出的寬度、高度與輸入相同)

model.add(layers.conv2d(64, (3, 3), activation='relu',padding='same')) # 預設valid

# 顯示

from keras.preprocessing import image # 將影象預處理為4維張量

import numpy as np

img = image.load_img(img_path, target_size=(150,150))

img_tensor = image.img_to_array(img)

img_tensor = np.expand_dims(img_tensor, axis=0)

img_tensor /= 255. # 對影象的預處理都需用這種方法歸一化

'''test_images = test_images.reshape((10000, 28*28))

test_images = test_images.astype('float32')/255

'''print(img_tensor.shape)

import matplotlib.pyplot as plt

plt.imshow(img_tensor[0])

plt.show()

卷積神經網路 Keras 由淺入深

python mathematics 卷積神經網路能夠有效的處理影象檔案,當然換一種說法就是能夠有效處理矩陣。其關鍵部分就是 卷積核 過濾器 的生成。當然還有一些其他的基礎操作。對於卷積核 卷積核的特徵 init filters,kernel size,strides 1 1 padding val...

Keras實現卷積神經網路

1 coding utf 8 2 3created on sun jan 20 11 25 29 201945 author zhen 6 78 import numpy as np 9from keras.datasets import mnist 10from keras.models impo...

練習keras的卷積神經網路

from pil import image import pylab import os import numpy as np from keras.models import sequential from keras.layers import convolution2d,zeropadding...