一碗酸梅湯 作品

第254章 數據解析和FCN的拓撲結構

    隨後,江寒操作著電腦,心無旁騖,很快就進入了狀態。

    夏雨菲也不再來打擾他,拿著手機,半躺在床上,自己上網、聽歌。

    江寒將高老師發送來的part012.rar和part013.rar下載下來,連同夏雨菲下載的前11個文件,放在了同一個文件夾中。

    然後在第1個文件上點擊鼠標右鍵,選擇用winrar解壓縮,很快就得到了數據包。

    一共兩個文件,train-images-idx3-ubyte與train-labels-idx1-ubyte。

    idx3-ubyte和idx1-ubyte都是自定義的文件格式,官網上就有格式說明。

    train-images文件大小超過1g,保存了20萬張手寫數字的圖片信息。

    而train-labels中則存儲了20萬個標籤數據,與train-images一一對應。

    和公開版本的mnist不同,用於比賽的這個手寫數字數據集,數據量要大出好幾倍。

    kaggle官方將數據集分為兩部分,訓練集train向參賽選手公開,而測試集test則內部保存。

    比賽的形式很簡單,大家根據公開的訓練集,編寫自己的程序,提交給主辦方。

    主辦方用不公開的測試集數據,對這些程序逐一進行測試,然後比較它們在測試集上的表現。

    主要指標是識別率,次要指標是識別速度等。

    這是“人工神經網絡”在這類競技場上的初次亮相,江寒可不想鎩羽而歸。

    事實上,如果想追求更好的成績,最好的辦法,就是弄出卷積神經網絡(cnn)來。

    那玩意是圖像識別算法的大殺器。

    在“機器學習”這個江湖中,cnn的威力和地位,就相當於武俠世界中的倚天劍、屠龍刀。

    cnn一出,誰與爭鋒!

    只可惜,這個東西江寒現在還沒研究出來。

    現上轎現扎耳朵眼,也來不及了。

    再說,飯要一口口吃,搞研究也得一步步來。

    跨度不能太大嘍,免得扯到蛋……

    所以在這次比賽中,江寒最多隻能祭出“帶隱藏層的全連接神經網絡”(fcn)。

    有了這個限制,就好比戴著鐐銬跳舞,給比賽平添了不少難度和變數。

    那些發展了幾十年的優秀算法,也不見得會輸普通的fcn多少。

    所以,現在妄言冠軍十拿九穩,還有點為時過早。

    不過,有挑戰才更有趣味性嘛,穩贏的戰鬥打起來有什麼意思呢?

    江寒根據官網上找到的數據格式說明文檔,編寫了一個文件解析函數,用來從兩個train文件中提取數據。

    train-images-idx3-ubyte的格式挺簡單的,從文件頭部連續讀取4個32位整形數據,就能得到4個參數。

    用來標識文件類型的魔數m、圖片數量n、每張圖片的高度h和寬度w。

    從偏移0016開始,保存的都是圖片的像素數據。

    顏色深度是8位,取值範圍0~255,代表著256級灰度信息,每個像素用一個字節來保存。