Keras學習教程六

2021-08-20 17:58:00 字數 2463 閱讀 6535

首先,讓我們以乙個非常簡單的閉環例項來看看實際情況。 我們將使用我們的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...