• <input id="2bncg"><div id="2bncg"></div></input>
    <video id="2bncg"><dfn id="2bncg"></dfn></video>
  • <video id="2bncg"></video>
        1. <source id="2bncg"><menu id="2bncg"><kbd id="2bncg"></kbd></menu></source>

          <b id="2bncg"><address id="2bncg"></address></b>

          <source id="2bncg"><address id="2bncg"></address></source>
          <video id="2bncg"></video>
          筆趣閣 > 都市小說 > 重生學神有系統 > 第53章 大功告成

          第53章 大功告成(1 / 2)

          不過,在跑代碼之前,還要對數據進行預處理。

          江寒先從報名信息表中,將性別信息仍然“健在”的行挑出來,只保留序號、姓名和性別,另存為bel.xls。

          這些記錄一共9527條,大約占三萬多條數據總數的30%。

          它們對應著9527張真彩色照片。

          24位真彩色的圖片,每個像素點在內存里,要占用3個字節的存儲單元。

          每張照片有210×120個像素,這樣讀入一張照片,需要的內存空間就是210×120×3=75600個Byte。

          9527條數據,共需要9527×75600=720241200B≈686.88M≈0.7G!

          這個內存開銷,還是比較容易接受的。

          但是,“感知機”的算法,需要進行大量浮點乘法運算。

          對每個像素的每個RGB分量都算一遍?

          沒那個必要,也太浪費時間。

          所以,聰明的做法,是先把照片數據“壓縮”一下。

          江寒給“感知機”的代碼,添加了一個LoadData函數,用來讀取和處理照片數據。

          在這個函數里,先定義一個二維的整形數組Feature。

          然后從bel.xls中讀出序號、姓名信息,按照剛才建立的索引表,找到對應的照片文件。

          下一步,將照片讀取到內存中,讀取的同時,將每個像素二值化。

          具體做法是:色彩濃度在閾值以上的像素,取值為1,低于閾值就讓它為0。

          這樣一來,原本的真彩色照片,就被轉換成了黑白輪廓圖。

          然后,再將輪廓圖中的0或者1的取值,按照從左到右、從上到下的順序,重新編排成一行數據,存放到數組Feature中。

          Feature中的每一行,都存儲了一張照片的二值化信息。

          一共9027張照片,就需要9027行。

          全部照片處理完畢后,就得到了一個巨大的二維數組Feature。

          它有25200列、9027行!

          接下來,定義一個擁有9027個整形元素的一維數組Label。

          從bel.xls中讀入性別信息,男生設為1,女生設為0,存放在數組Label中。

          Feature加上對應的Label,就構成了訓練數據集。

          訓練“感知機”時,將一行行Feature代入公式中,進行加權和運算,其結果再通過sign函數,轉換為0或1,然后和對應的Label值對照。

          如果不相符,就調整權重和偏置,然后重新計算。

          當每一個Feature代入公式后,都能計算出正確的Label時,就得到了一組權重和偏置。

          也就是說,構建出了一個可用的數學模型。

          依據這個模型,計算機就可以讀入任何一張同尺寸、類型的照片,對其二值化的數據代入模型中運算,并根據運算結果判斷分類歸屬。

          這就是典型的機器學習過程,計算機從數據中自己“學”到了某種規律。

          即使這種規律,人類并不一定完全理解,也不見得能用數學語言解釋清楚……

          剩下的就比較簡單了。

          接下來,江寒又添加了幾個函數,用來輸出運算結果、觀察運行情況等。

          最后,從頭調試了一遍,確認沒啥bug后,將代碼重新編譯,然后運行了起來。

          屏幕上有一些數字,表示當前正在處理的數據,和訓練進度的百分比。

          十分鐘后,后一個數字才剛剛達到1.3%。

          這表示,完整訓練一遍,大約需要13個小時……

          之所以這么慢,主要是江寒的程序,比較追求穩定性,以及調試的方便、快捷,并沒特別講究執行效率。

          當然,即使他用心優化,估計也需要8個小時以上,才能完成訓練。

          雖然有點慢,但其實沒什么關系,訓練過程并不需要人工干預,掛機等著就行。

          第二天早晨,江寒起床后,先看了下訓練進度,還差了大約13%才能完成,就先去班級上課。

          中午吃完飯回來,訓練終于結束了。

          而存放權重和偏置參數的Weight數組,也以內存映像的方式,保存在了一個二進制文件中。

          接下來就簡單了。

          重建一個一模一樣的感知機模型,加載上這個權重文件,就可以用它來判斷剩余照片的性別了。

          江寒重新改寫代碼,然后運行。

          這次十分迅速,只用了不到20分鐘,就將兩萬一千來張照片,全部處理完畢。

          最新小說: 頂級世家!我音系成神?滅異族! 咬定寶山不放松 在線追妻:陸先生寵婚365式 斗羅:學霸養成系統什么鬼 人在柯南,我真不是悍匪 我,內測服最終BOSS! 上山十幾年,下山即無敵 精靈世界的工匠大師 低等雌性爆紅全星際 萬金娘子
        2. <input id="2bncg"><div id="2bncg"></div></input>
          <video id="2bncg"><dfn id="2bncg"></dfn></video>
        3. <video id="2bncg"></video>
              1. <source id="2bncg"><menu id="2bncg"><kbd id="2bncg"></kbd></menu></source>

                <b id="2bncg"><address id="2bncg"></address></b>

                <source id="2bncg"><address id="2bncg"></address></source>
                <video id="2bncg"></video>
                最近免费观看高清韩国日本大全