首先,讓我們以乙個非常簡單的閉環例項來看看實際情況。 我們將使用我們的convnet對mnist數字進行分類,這是您在第2章中已經完成的使用密集連線網路的一項任務(我們的測試精度為97.8%)。 儘管我們的小圓圈將是非常基礎的,但它的準確性仍然會從第二章密集連線模型的水中吹出來。
以下6行**顯示了基本的convnet的外觀。 它是一堆conv2d和maxpooling2d圖層。 我們會在一分鐘內看到他們具體做什麼。 重要的是,乙個convnet需要輸入形狀張量(image_height,image_width,image_channels)(不包括批量維度)。 在我們的例子中,我們將配置我們的convnet處理大小為(28,28,1)的輸入,這是mnist影象的格式。 我們通過將引數input_shape =(28,28,1)傳遞給我們的第一層來做到這一點。
from keras import layers
from keras import models
model = models.sequential()
model.add(layers.conv2d(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.maxpooling2d((2, 2)))
model.add(layers.conv2d(64, (3, 3), activation='relu'))
model.add(layers.maxpooling2d((2, 2)))
model.add(layers.conv2d(64, (3, 3), activation='relu'))
讓我們展示迄今為止我們的convnet的體系結構:
model.summary()
您可以在上面看到,每個conv2d和maxpooling2d圖層的輸出都是3d形狀(高度,寬度,通道)張量。 隨著我們深入網路,寬度和高度尺寸趨於縮小。 通道數量由傳遞給conv2d圖層的第乙個引數(例如32或64)控制。
接下來的步驟是將我們最後的輸出張量(形狀(3,3,64))饋送到密集連線的分類器網路中,就像您已經熟悉的那樣:一堆密集層。 這些分類器處理向量,它們是1d,而我們當前的輸出是3d張量。 首先,我們將不得不將3d輸出平鋪到1d,然後在頂部新增一些密集層:
model.add(layers.flatten())
model.add(layers.dense(64, activation='relu'))
model.add(layers.dense(10, activation='softmax'))
我們要做10路分類,所以我們使用乙個有10個輸出和softmax啟用的最終圖層。 現在,我們的網路如下所示:
model.summary()
正如你所看到的,我們的(3,3,64)輸出在經過兩個密集層之前被平坦化為形狀的向量(576,)。
現在,讓我們訓練一下mnist數字上的小圓圈。 我們將重用第2章中mnist示例中已經介紹的很多**。
from keras.datasets import mnist
from keras.utils import to_categorical
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
train_images = train_images.reshape((60000, 28, 28, 1))
train_images
test_loss, test_acc = model.evaluate(test_images, test_labels)
= train_images.astype('float32') / 255test_images = test_images.reshape((10000, 28, 28, 1))test_images = test_images.astype('float32') / 255train_labels = to_categorical(train_labels)test_labels = to_categorical(test_labels)
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5, batch_size=64)
讓我們在測試資料上評估模型:
test_loss, test_acc = model.evaluate(test_images, test_labels)
test_acc
C 學習教程六
c 異常機制具有如下的特徵 1 所有異常必須用system.exception類或者從system.exception派生的類例項來標識。2 可以使用fianlly塊編寫在正常執行或異常情況下都要執行的終止 3 系統級的異常如移除 被零除和null等都對應地定義了其匹配的異常類,並且與應用程式級的錯...
Keras例項教程 1
總的來說,使用keras構建神經網路的基本工作流程主要可以分為4個部分。而且這個用法和思路我個人感覺,很像是在使用scikit learn中的機器學習方法 model definition model compilation training evaluation and prediction 下面...
keras初步學習
import os os.environ keras backend theano import keras 這樣就可以將keras依賴於theano using theano backend.2.曲線擬合 importos os.environ keras backend theano impor...