該比賽計算每乙個條目的f1score,取所有條目的平均,具體計算方式在這裡。這裡的計算方式不對一句話裡的相同文字重複計算,故f1score比提交的最終結果低:
-train
valf1score
0.9911
0.9582
recall
0.9943
0.9574
precision
0.9894
0.9637模型
採用densenet結構,模型輸入為(64×512)的,輸出為(8×64×2159)的概率。
將劃分為多個(8×8)的方格,在每個方格**2159個字元的概率。
loss
將(8×64×2159)的概率沿著長寬方向取最大值,得到(2159)的概率,表示這張裡有對應字元的概率。
balance: 對正例和負例分別計算loss,使得正例loss權重之和與負例loss權重之和相等,解決資料不平衡的問題。
hard-mining
文字檢測
將(8×64×2159)的概率沿著寬方向取最大值,得到(64×2159)的概率。
沿著長方向乙個個方格**文字,然後連起來可得到一句完整的語句。
ubuntu16.04, python2.7, cuda9.0
安裝pytorch, 推薦版本: 0.2.0_3
pip install -r requirement.txt
如果不更換資料集,不需要執行這一步。
如果更換其他資料集,一併更換 files/train.csv
cd code/preprocessing
python map_word_to_index.py
python analysis_dataset.py
cd code/ocr
python main.py
f1score在0.9以下,lr=0.001,不使用hard-mining;
f1score在0.9以上,lr=0.0001,使用hard-mining;
生成的model儲存在不同的資料夾裡。
cd code/ocr
python main.py --phase test --resume ../../data/models-small/densenet/eval-16-1/best_f1score.ckpt
廣告時間 燕子石
燕子石簡介 在泰山山脈的萊蕪山區,人們很早便發現了神奇絕妙的三葉蟲化石。三葉蟲生成於五億年前的寒武紀,至中生代開始消亡,先後統治海洋達三億年之久。滄海巨變,無情的大自然將它們鑲嵌在了灰黃色的石板上,由於它們保留了生命最後瞬間動人的姿態,如採花的蜜蜂 似尋芳的蝴蝶,像翱翔的海燕,又似穿柳的春燕,所以人...
作家鄭石岩
2012.5.31 筆記 鄭石岩的家裡貧窮,小學畢業時,隔壁村莊一位好心的親戚跟母親說 你的小孩,我幫你介紹去某個人家放牛吧,有三餐,一年還有100斤的穀子。鄭石岩靜靜在一旁聽,沒有激動的反應,只是默默想 我真的要去放牛了 當然,有幾分心酸。可是,親戚才一走開,媽媽對他說 我要讓你念初中,你應該去念...
CCF 爐石傳說
這題原本想的比較複雜,因為每次召喚隨從或隨從死亡時都要對右邊的隨從編號進行變動,然後構建了鍊錶的資料結構,但是越寫越複雜,所以馬上放棄這個思路。其實只要構建乙個結構體,結構體儲存隨從的health和attack,以及乙個flag表示隨從是否死亡。構建兩個size為8的陣列,用以儲存隨從即可。incl...