成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

TensorFlow.js 卷積神經(jīng)網(wǎng)絡(luò)手寫數(shù)字識別

zzir / 1811人閱讀

摘要:原博地址源碼演示開始時需要加載大概的訓(xùn)練數(shù)據(jù)稍等片刻調(diào)整訓(xùn)練集的大小觀察測試結(jié)果的準(zhǔn)確性數(shù)據(jù)來源數(shù)據(jù)來源與中的一道題目題目給出條訓(xùn)練數(shù)據(jù)包含圖片和標(biāo)簽以及條測試數(shù)據(jù)只包含圖片要求給這些測試數(shù)據(jù)打上標(biāo)簽要盡可能的準(zhǔn)確網(wǎng)站中還有許多其

原博地址https://laboo.top/2018/11/21/tfjs-dr/

源碼

digit-recognizer

demo

https://github-laziji.github.io/digit-recognizer/
演示開始時需要加載大概100M的訓(xùn)練數(shù)據(jù), 稍等片刻

調(diào)整訓(xùn)練集的大小, 觀察測試結(jié)果的準(zhǔn)確性

數(shù)據(jù)來源

數(shù)據(jù)來源與 https://www.kaggle.com 中的一道題目 digit-recognizer
題目給出42000條訓(xùn)練數(shù)據(jù)(包含圖片和標(biāo)簽)以及28000條測試數(shù)據(jù)(只包含圖片)
要求給這些測試數(shù)據(jù)打上標(biāo)簽[0,1,2,3....,9] 要盡可能的準(zhǔn)確

網(wǎng)站中還有許多其他的機(jī)器學(xué)習(xí)的題目以及數(shù)據(jù), 是個很好的練手的地方

實現(xiàn)

這里我們使用TensorFlow.js來實現(xiàn)這個項目

創(chuàng)建模型

卷積神經(jīng)網(wǎng)絡(luò)的第一層有兩種作用, 它既是輸入層也是執(zhí)行層, 接收IMAGE_H * IMAGE_W大小的黑白像素
最后一層是輸出層, 有10個輸出單元, 代表著0-9這十個值的概率分布, 例如 Label=2 , 輸出為[0.02,0.01,0.9,...,0.01]

function createConvModel() {
  const model = tf.sequential();

  model.add(tf.layers.conv2d({
    inputShape: [IMAGE_H, IMAGE_W, 1],
    kernelSize: 3,
    filters: 16,
    activation: "relu"
  }));

  model.add(tf.layers.maxPooling2d({ poolSize: 2, strides: 2 }));
  model.add(tf.layers.conv2d({ kernelSize: 3, filters: 32, activation: "relu" }));
  model.add(tf.layers.maxPooling2d({ poolSize: 2, strides: 2 }));
  model.add(tf.layers.conv2d({ kernelSize: 3, filters: 32, activation: "relu" }));
  model.add(tf.layers.flatten({}));

  model.add(tf.layers.dense({ units: 64, activation: "relu" }));
  model.add(tf.layers.dense({ units: 10, activation: "softmax" }));

  return model;
}
訓(xùn)練模型

我們選擇適當(dāng)?shù)膬?yōu)化器和損失函數(shù), 來編譯模型

async function train() {

  ui.trainLog("Create model...");
  model = createConvModel();
  
  ui.trainLog("Compile model...");
  const optimizer = "rmsprop";
  model.compile({
    optimizer,
    loss: "categoricalCrossentropy",
    metrics: ["accuracy"],
  });
  const trainData = Data.getTrainData(ui.getTrainNum());
  
  ui.trainLog("Training model...");
  await model.fit(trainData.xs, trainData.labels, {});

  ui.trainLog("Completed!");
  ui.trainCompleted();
}
測試

這里測試一組測試數(shù)據(jù), 返回對應(yīng)的標(biāo)簽, 即十個輸出單元中概率最高的下標(biāo)

function testOne(xs){
  if(!model){
    ui.viewLog("Need to train the model first");
    return;
  }
  ui.viewLog("Testing...");
  let output = model.predict(xs);
  ui.viewLog("Completed!");
  output.print();
  const axis = 1;
  const predictions = output.argMax(axis).dataSync();
  return predictions[0];
}
歡迎關(guān)注我的博客公眾號

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108790.html

相關(guān)文章

  • 機(jī)器學(xué)習(xí)研究人員需要了解的8個神經(jīng)網(wǎng)絡(luò)架構(gòu)(上)

    摘要:神經(jīng)網(wǎng)絡(luò)是一組特定的算法,對機(jī)器學(xué)習(xí)領(lǐng)域發(fā)生了革命性的變化。在這篇博客文章中,我想分享我認(rèn)為機(jī)器學(xué)習(xí)研究人員應(yīng)該熟悉的課程中的個神經(jīng)網(wǎng)絡(luò)架構(gòu),以推進(jìn)他們的工作。卷積神經(jīng)網(wǎng)絡(luò)機(jī)器學(xué)習(xí)研究一直以來都集中在對象檢測問題上。 摘要: 本文簡要講述了8種機(jī)器學(xué)習(xí)架構(gòu),希望可以給大家?guī)韼椭?showImg(https://segmentfault.com/img/bV8Hby?w=1000&h=...

    DevTalking 評論0 收藏0

發(fā)表評論

0條評論

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