国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

GTAV智能駕駛源碼詳解(二)——Train the AlexNet

jayzou / 1715人閱讀

摘要:智能駕駛源碼詳解二模型簡介本使用進行圖像分類前進左轉右轉。其性能超群,在年圖像識別比賽上展露頭角,是當時的冠軍,由團隊開發,領頭人物為教父。

GTAV智能駕駛源碼詳解(二)——Train the AlexNet 模型簡介:

本AI(ScooterV2)使用AlexNet進行圖像分類(前進、左轉、右轉)。
Alexnet是一個經典的卷積神經網絡,有5個卷積層,其后為3個全連接層,最后的輸出激活函數為分類函數softmax。其性能超群,在2012年ImageNet圖像識別比賽上展露頭角,是當時的冠軍Model,由SuperVision團隊開發,領頭人物為AI教父Jeff Hinton。

網絡結構如圖1所示:


圖1 AlexNet示意圖

定義模型:
#導入依賴庫(tflearn backended)
import tflearn
from tflearn.layers.conv import conv_2d, max_pool_2d
from tflearn.layers.core import input_data, dropout, fully_connected
from tflearn.layers.estimator import regression
from tflearn.layers.normalization import local_response_normalization
from collections import Counter
from numpy.random import shuffle
import numpy as np
import numpy as np
import pandas as pd

#定義AlexNet模型
def alexnet(width, height, lr):
    network = input_data(shape=[None, width, height, 1], name="input")
    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, 3, activation="softmax")
    network = regression(network, 
                         optimizer="momentum",
                         loss="categorical_crossentropy",
                         learning_rate=lr, 
                         name="targets")

    model = tflearn.DNN(network, 
                        checkpoint_path="model_alexnet",
                        max_checkpoints=1, 
                        tensorboard_verbose=2, 
                        tensorboard_dir="log")

    return model
AlexNet注釋:

模型傳入參數為3個:圖像的長度、寬度和梯度下降學習率;

模型的Input Layer接受數據集中的圖片作為輸入,圖像長度160,高度為90,channel數量為三,輸入數據為m*160*90*3的張量,m為一次英處理的樣本數量;

Input Layer后跟著第一個卷積層,卷積核數量為96,卷積核尺寸為11*11,卷積步長為4,該卷積層使用ReLu作為激活函數;

第一個卷積層后跟著第一個池化層,池化類型為MaxPooling,池化尺寸3*3,池化步長為2;

池化之后的結果通向LRN層,jeff hinton的標注為模擬大腦的側向抑制,對張量中的每個元素都用它和它相鄰feature map的元素的平均值代替(雖然好像并沒有什么用),具體原理如圖2;

之后是AlexNet的第二個卷積層,卷積核數量為256,卷積核尺寸為5*5,卷積步長默認為1,該卷積層依然使用ReLu作為激活函數;

之后的池化層依舊為MaxPooling,池化尺寸3*3,池化步長為2;

第二個LRN層,作用同上;

之后是三個接連的卷積層,卷積核數量依次為384、384、256,卷積核尺寸都為3*3,都用ReLu作為激活函數;

經過尺寸為3*3,步長為2的池化層和一個LRN層之后,卷積網絡部分結束,通向3個全連接層。前兩個全連接層都向后輸出長度為4096的向量,使用tanh作為非線性激活函數,都有50%的dropout概率,神經元有二分之一的可能性被deactivate;第三個全連接層為輸出層,輸出3維向量,并使用softmax作為分類的激活函數。

每一次前向傳播完成后,使用交叉熵cross_entropy作為卷積網絡的loss函數;整個神經網絡使用momentum作為優化(梯度下降加上momentum過濾由于lr過高引起的振蕩),個人覺得使用Adam也許效果會更好,收斂會更快。


圖2 Local_Response_Normolization示意圖

卷積網絡的訓練:
WIDTH = 160
HEIGHT = 90
LR = 1e-3
EPOCHS = 10
MODEL_NAME = "scooterv2.model"
model = alexnet(WIDTH, HEIGHT, LR)

train_data = np.load("training_data_after_shuffle.npy")
train = train_data[:-1000]
test = train_data[-1000:]

X = np.array([i[0] for i in train]).reshape(-1,WIDTH,HEIGHT,1)
Y = [i[1] for i in train]

test_x = np.array([i[0] for i in test]).reshape(-1,WIDTH,HEIGHT,1)
test_y = [i[1] for i in test]

for index in range(1,200):

    
    model.fit({"input": X}, 
              {"targets": Y}, 
              n_epoch=EPOCHS, 
              validation_set=({"input": test_x}, {"targets": test_y}), 
              snapshot_step=500, 
              show_metric=True, 
              run_id=MODEL_NAME)
    model.save(MODEL_NAME)

學習率為0.001,for循環中每一次迭代訓練的epoch數量為10,mini_batch的樣本數量使用默認值64;數據集的后1000個作為validation set,剩余的都作為測試集使用。
跑一次一共訓練了200*10=2000次,但實際上參數更新了20萬次,每一次mini_batch都更新一次參數。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44463.html

相關文章

  • GTAV智能駕駛源碼詳解(一)——制作數據集

    摘要:本暫且稱之為借鑒了美國死宅的方案,只使用截圖捕捉的畫面以模擬攝像頭數據作為的輸入,并沒有真實的智能駕駛所涉及的傳感器與雷達數據。在游戲中人為駕駛小時,將每一幀圖片以及其所對應的操作向量記錄在數據集張量中。每幀保存一次數據集設置為暫停鍵。 項目介紹 場景足夠豐富,操作足夠簡單,有大量的交通工具和駕駛視角可供選擇,游戲《Grand Theft Auto 5》是一個相對廉價且適合初級人工智能...

    lookSomeone 評論0 收藏0
  • 從DensNet到CliqueNet,解讀北大在卷積架構上的探索

    摘要:首先第一種當然是在年提出的,它奠定了整個卷積神經網絡的基礎。其中局部感受野表示卷積核只關注圖像的局部特征,而權重共享表示一個卷積核在整張圖像上都使用相同的權值,最后的子采樣即我們常用的池化操作,它可以精煉抽取的特征。 近日,微軟亞洲研究院主辦了一場關于 CVPR 2018 中國論文分享會,機器之心在分享會中發現了一篇非常有意思的論文,它介紹了一種新型卷積網絡架構,并且相比于 DenseNet...

    Jackwoo 評論0 收藏0

發表評論

0條評論

jayzou

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<