首頁 都市

重生學神有系統(tǒng)

第53章 大功告成

重生學神有系統(tǒng) 一碗酸梅湯 2493 2019-11-07 07:57:45

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

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

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

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

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

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

  9527條數(shù)據(jù),共需要9527×75600=720241200B≈686.88M≈0.7G!

  這個內(nèi)存開銷,還是比較容易接受的。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  它有25200列、9527行。

  接下來,定義一個擁有9527個整形元素的一維數(shù)組Label。

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

  Feature加上對應的Label,就構成了訓練數(shù)據(jù)集。

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

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

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

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

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

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

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

  剩下的就比較簡單了。

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

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

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

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

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

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

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

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

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

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

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

  接下來就簡單了。

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

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

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

  這就是“感知機”,或者說“人工神經(jīng)網(wǎng)絡”的特點。

  訓練起來特別耗時,一旦訓練完成,工作起來非??旖荨?p>  至于正確率,江寒初步估計,大大超過99%,21000條未經(jīng)訓練的數(shù)據(jù)里,判斷出錯的,絕不超過10人。

  比人類肉眼的識別率低不到哪里去。

  事實上,“感知機”或者說“人工神經(jīng)網(wǎng)絡”的錯誤率,跟訓練數(shù)據(jù)、測試數(shù)據(jù)的質(zhì)量有很大關系。

  如果比較規(guī)范,達到100%的識別率都不算稀奇。

  可惜實際運用中,總有個別實例,奇葩得超乎想象。

  有的時候,人類都幾乎無法識別!

  根據(jù)老高的說法,這區(qū)區(qū)幾個錯誤的,可以在把名單下達到各校后,根據(jù)反饋修改一下就行。

  如果沒有這個托底,就沒法使用“感知機”,因為沒辦法判斷,哪些人被誤分類了……

  得到了全部照片的性別數(shù)據(jù)后,江寒將其粘貼到了《報名信息表》中。

  大功告成后,江寒沒急著找高老師復命。

  這么快就搞定,老高肯定會十分震驚,然后追問前因后果。

  “感知機”解釋起來太費勁,而且也沒那么高大上,還用不著見人就推銷。

  關鍵老高一個人貢獻的那點震驚值,江寒現(xiàn)在已經(jīng)有點看不上眼了。

  休息了一會兒后,江寒就拿著《noip通關寶典》,回班級繼續(xù)刷題。

  ※※※※※

  “杠上開”是一個營銷號主。

  什么是營銷號?

  百科上說,一般是指組織機構或者個人對外宣傳散發(fā)信息所用的賬號,具有目的性,一般是用來宣傳產(chǎn)品或服務的。

  狹義上說,就是純粹以賺錢為目的,專門在各大視頻站上傳垃圾內(nèi)容的人。

  內(nèi)容粗制濫造?那是基本操作;

  虛假宣傳和科普?那是日常作業(yè);

  動不動危言聳聽、各種震驚?這根本就不算事兒。

  沒事兒當當水軍,引導引導輿論,才是他們的主要業(yè)務。

  反正很多事情,很多人既不了解,也不具備判別能力,還不是哪邊人多信哪邊……

  你說網(wǎng)友們義憤填膺?

  上面都不管,網(wǎng)友算老幾,錢到手才是真的。

  為什么網(wǎng)站不整治?

  一個是很難區(qū)分,容易誤傷正常的up主;

  再一個,網(wǎng)站跟流量什么仇、什么怨……

  “杠上開”就是這樣一個營銷號,每天出沒于各個視頻站,P站算是他最重要的基本盤。

  他最常做的,就是接受客戶的委托,然后不擇手段地完成任務。

  視頻網(wǎng)站給的那點補貼,他根本沒放在眼里,客戶的賞金才是大頭。

  今天,他做完“作業(yè)”,上傳完幾個視頻,然后隨便在P站逛了一會兒。

  忽然,一個點擊、投幣超高的視頻,躍入了眼簾。

  本月熱門?

  “杠上開”來了點興趣。

  仔細一看標題,頓時有點無語。

  《舊光驅(qū)改造寫字機器人》……真夠夸張的,你怎么不改造成航母呢?

  不過,好奇之下,他還是點開了視頻,看了一眼。

  結果,一看之下,他瞬間就驚呆了。

  臥槽,還真是個高手,這動手能力有點逆天了。

  本著一個營銷號的職業(yè)精神,“杠上開”感到了一種久違的使命感。

  必須做點什么。

  沒錯,這么有創(chuàng)意的視頻,不盜上一把,他簡直渾身藍瘦!

  不過,簡單的重發(fā)是不行的,網(wǎng)站的審核員職位,也不是白設置的。

  所以,還需要用點技巧,稍微加工、處理一下……

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設置
設置
書架
加入書架
書頁
返回書頁
指南