1. 程式人生 > >Keras學習筆記---keras做迴歸問題

Keras學習筆記---keras做迴歸問題

參考caffe做迴歸問題,這裡主要是改caffe的迴歸程式碼為keras程式碼,順便熟悉keras的流程。caffe的訓練資料主要是通過這篇部落格網址得到訓練資料。這裡主要是通過keras書寫網路,同時做相應的預測。

首先看一下caffe的網路結構圖:


這裡按照這個網路搭建keras的網路:

# coding=utf-8
from keras.layers import merge
from keras.layers.convolutional import Convolution2D, MaxPooling2D,ZeroPadding2D,AveragePooling2D
from keras.layers.core import Dense, Activation,Flatten,Dropout
from keras.layers.normalization import BatchNormalization
from keras.models import Model
from keras.layers import Input
from keras.utils import plot_model
from keras import losses
import h5py
import keras
#輸入資料的塊大小
inp = Input(shape=(1,100,100))
#網路結構
out = Convolution2D(96,kernel_size=(5,5),strides=(2,2))(inp)
out = Activation('relu')(out)
out = MaxPooling2D(pool_size=(3,3),strides=2)(out)
out = ZeroPadding2D(padding=(2,2))(out)


out = Convolution2D(filters=96,kernel_size=(3,3),strides=(1,1))(out)
out = Activation('relu')(out)
out = MaxPooling2D(pool_size=(3,3),strides=2)(out)
out = ZeroPadding2D(padding=(1,1))(out)


out = Convolution2D(filters=128,kernel_size=(3,3),strides=(1,1))(out)
out = Activation('relu')(out)
out = MaxPooling2D(pool_size=(3,3),strides=2)(out)

out = Flatten()(out)
out = Dense(units=192,activation='softmax')(out)
out = Activation('relu')(out)
out = Dropout(rate=0.5)(out)
out = Dense(units=1,activation='sigmoid')(out)
#net
model = Model(inp,out)

#做迴歸的問題採用mse損失函式
model.compile(loss=losses.mean_squared_error, optimizer='sgd')
#載入需要進行訓練的資料

x_data = keras.utils.io_utils.HDF5Matrix('train.h5', 'data')
y_data = keras.utils.io_utils.HDF5Matrix('train.h5', 'score')
#shuffle the data
model.fit(x_data, y_data,validation_split=0.3,epochs=10, batch_size=16)
model.save('regression_model.h5')
plot_model(model, to_file='model2.png',show_shapes=True)

網路圖如下:

然後用來預測的程式碼如下:

# coding=utf-8
import numpy as np
from keras.layers import Dense
from keras.models import Model
from keras.preprocessing import image

from keras.models import load_model
model = load_model('regression_model.h5')
# model.load_weights('weight.h5')
print model.get_config()
image_path = './samples/00001_0.028184228311.jpg'
# 載入影象
img = image.load_img(image_path,  grayscale=True, target_size=(100, 100))
# 影象預處理
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)

# 對影象進行分類
preds = model.predict(x)
# 輸出預測概率
print 'Predicted:', preds


重點都在程式碼中註釋。

相關推薦

Keras學習筆記---keras迴歸問題

參考caffe做迴歸問題,這裡主要是改caffe的迴歸程式碼為keras程式碼,順便熟悉keras的流程。caffe的訓練資料主要是通過這篇部落格網址得到訓練資料。這裡主要是通過keras書寫網路,同時做相應的預測。 首先看一下caffe的網路結構圖: 這裡按照這個網路

Deep learning基於theano的keras學習筆記-網路層

Deep learning基於theano的keras學習筆記-網路層 轉自 https://blog.csdn.net/zhili8866/article/details/53262114 1. 常用層 1.1 Dense層 keras.layers.core.Dense(outp

keras學習筆記2——Merge理解、GPU的設定方法,以及新手的注意事項

keras學習筆記2——Merge、GPU呼叫、快速開始及常見問題 參考資料:http://keras-cn.readthedocs.io/en/latest/ 1. Merge層 Merge層主要是用來合併多個model的,例子如下: from keras.layers impor

keras學習筆記1——Keras模組概述

keras學習筆記1——Keras模組概述   Keras主要包括14個模組,本文主要對Models、layers、Initializations、Activations、Objectives、Optimizers、Preprocessing、metrics共計8個模組分別展開介紹

keras學習筆記(二)

學習過tensorflow後,繼續學習了keras,想用keras自己去寫一個卷積神經網路,用於cifar10的資料分類問題。 例項:CIFAR10分類 下面程式碼主要介紹了keras中三種構建網路結構的方式,僅供參考,可能還有更多的寫網路結構的方式,但目前我作為初學者,瞭解的沒有那麼廣泛。

keras 學習筆記:從頭開始構建網路處理 mnist

全文參考 《 基於 python 的深度學習實戰》   import numpy as np from keras.datasets import mnist from keras.models import Sequential from keras.layers import Den

keras學習筆記(三)

資料歸一化 通過上次對cifar10資料集分類的任務,我的分類精度在0.79,但是當我對輸入的資料做了歸一化後,精度達到了0.99,實現的語句如下: X_train = X_train.astype('float32')/255 X_test = X_test.astype('float32

Keras學習之3:迴歸問題(boston_housing資料為例)

     本實驗使用boston_housing資料集對房價資料進行迴歸分析,資料來自1970年代,波斯頓周邊地區的房價,是用於機器學習的經典資料集。該資料集很小,共計506條資料,分為404個訓練樣本和102個測試樣本,因此需要採用K-Fold,這裡取K=4。每條資料包含1

官網例項詳解4.15(imdb_cnn_lstm.py)-keras學習筆記

程式碼註釋'''Train a recurrent convolutional network on the IMDB sentiment classification task. 為IMDB(資料集)情感分類任務訓練迴圈卷積網路 Gets to 0.8498 test ac

keras學習筆記

1.基本概述 neural layers(神經層), cost functions(損失函式), optimizers(優化器), initialization schemes(初始化方案), activation functions(啟用函式), r

深度學習(十)keras學習筆記

作者:hjimce keras與torch7的使用非常相似,是最近才火起來的深度學習開源庫,底層是用了theano。keras可以說是python版的torch7,對於快速構建CNN模型非常方便。同時也包含了一些最新文獻的演算法,比如Batch Noramlize,文件

Keras學習筆記:Chapter1-Keras入門

Keras Keras是一個高層神經網路庫。Keras是由Python編寫而成的,後端實現是基於Tensorflow,CNTK或Theano(Keras是一個庫,可以理解為一個基於多種不同機器學習庫提供相同api的庫)。 Keras發展的要義是:將想

keras\preprocessing目錄檔案詳解5.2(sequence.py)-keras學習筆記

功能:用於預處理序列(例如一篇文章,句子)資料的實用工具。 keras-master\keras\preprocessing\sequence.py 建立詞向量嵌入層,把輸入文字轉為可以進一步處理的資料格式(例如,矩陣) 程式碼註釋 # -*- coding:

Keras學習筆記---儲存model檔案和載入model檔案

儲存keras的model檔案和載入keras檔案的方法有很多。現在分別列出,以便後面查詢。 keras中的模型主要包括model和weight兩個部分。 儲存model部分的主要方法:一是通過js

深度學習BiGan學習筆記,keras

對抗生成網路Gan變體集合 keras版本 bigan(Bidirectional GAN 雙向Gan) http://link.zhihu.com/?target=https://arxiv.org/abs/1605.09782 具有生成器G,編碼器encoder,判別器D 作用: 1

聽它爹說他孩兒:Keras 學習筆記 2

本書有30多個範例,幫你學會解決具體問題。這些範例開發工具,用的是 Keras 及其底層 TensorFlow。你將學會使用 Keras 處理實際問題,如機器視覺、自然語言、影象分類、時間序列預測、情緒分析、影象和文字生成等。Keras 的老家在 https://keras.

聽它爹說他孩兒:Keras 學習筆記 4.3

對電影評論進行分類:二分法的範例把一批資料分成兩類,可能是機器學習應用最為廣泛的分類方法。因特網電影資料庫( IMDB )的資料集該資料集有 50,000 條影評,訓練與測試各用 25,000 條,而正面與負面評價各佔 50 %。與資料集 MNIST 相伴,IMDB 資料集也

官網例項詳解4.6(cifar10_cnn_capsule.py)-keras學習筆記

基於CIFAR10(小批量圖片)資料集訓練簡單的膠囊(組神經元)深度卷積神經網路程式碼註釋"""Train a simple CNN-Capsule Network on the CIFAR10 small images dataset. 基於CIFAR10(小批量圖片)資料

keras學習筆記-黑白照片自動著色的神經網路-Beta版

正文共3894個字,8張圖,預計閱讀時間11分鐘。Alpha版本不能很好地給未經訓練的影象著色。

Keras學習筆記02——常用的網路層

在搭建神經網路結構時,我們要向網路中新增一些網路層,下面列舉出來常用的網路層及其相關用法。 一、常用層 常用層對應於core模組,core內部定義了一系列常用的網路層,包括全連線、啟用層等。 1.Dense層 Dense層:全連線層。 ke