1. 程式人生 > >TensorFlow實戰筆記(17)---TFlearn

TensorFlow實戰筆記(17)---TFlearn

目錄:

  1. 分散式Estimator
    • 自定義模型
    • 建立自己的機器學習Estimator
    • 調節RunConfig執行時的引數
    • Experiment和LearnRunner
  2. 深度學習Estimator
    • 深度神經網路
    • 廣度深度模型
  3. 機器學習Estimator
    • 線性/邏輯迴歸
    • 隨機森林
    • K均值聚類
    • 支援向量機
  4. DataFrame
  5. 監督器Monitors
  6. 程式碼例子

一、分散式Estimator

Estimator包含各種機器學習和深度學習的類,使用者能直接使用這些高階類,同時可根據實際的應用需求快速建立自己的子類。

 

六、程式碼例子---TFlearn實現AlexNet

資料為鮮花資料集 :

17_Category_Flower 是一個不同種類鮮花的影象資料,包含 17 不同種類的鮮花,每類 80 張該類鮮花的圖片,鮮花種類是英國地區常見鮮花。

程式碼:

import tflearn
from tflearn.layers.core import input_data, dropout, fully_connected
from tflearn.layers.conv import conv_2d, max_pool_2d
from tflearn.layers.normalization import
local_response_normalization from tflearn.layers.estimator import regression

import tflearn.datasets.oxflower17 as oxflower17 X, Y = oxflower17.load_data(one_hot=True, resize_pics=(227, 227)) ##此句呼叫了tflearn資料夾下dataset中oxflower17.py函式,下載資料 #構建AlexNet網路 # Building 'AlexNet' network = input_data(shape=[None, 227, 227, 3]) network
= conv_2d(network, 96, 11, strides=4, activation='relu') network = max_pool_2d(network, 3, strides=2) network = local_response_normalization(network) network = conv_2d(network, 256, 5, activation='relu') network = max_pool_2d(network, 3, strides=2) network = local_response_normalization(network) network = conv_2d(network, 384, 3, activation='relu') network = conv_2d(network, 384, 3, activation='relu') network = conv_2d(network, 256, 3, activation='relu') network = max_pool_2d(network, 3, strides=2) network = local_response_normalization(network) network = fully_connected(network, 4096, activation='tanh') network = dropout(network, 0.5) network = fully_connected(network, 4096, activation='tanh') network = dropout(network, 0.5) network = fully_connected(network, 17, activation='softmax') network = regression(network, optimizer='momentum', loss='categorical_crossentropy', learning_rate=0.001) # Training model = tflearn.DNN(network, checkpoint_path='model_alexnet', max_checkpoints=1, tensorboard_verbose=2) model.fit(x, y, n_epoch=1000, validation_set=0.1, shuffle=True, show_metric=True, batch_size=64, snapshot_step=200, snapshot_epoch=False, run_id='alexnet_oxflowers17')