宝贝腿开大点我添添你视频男男,中文字幕熟女人妻av一区二区三区,爱色成人网,大地资源高清播放在线观看在线电影在线观看 ,777米奇影视第四色

集團(tuán)站切換校區(qū)

驗(yàn)證碼已發(fā)送,請(qǐng)查收短信

復(fù)制成功
微信號(hào):togogoi
添加微信好友, 詳細(xì)了解課程
已復(fù)制成功,如果自動(dòng)跳轉(zhuǎn)微信失敗,請(qǐng)前往微信添加好友
打開微信
圖標(biāo)

業(yè)界新聞

當(dāng)前位置:首頁 > >業(yè)界新聞 > >

人工智能AI培訓(xùn)_Tensorflow 2.0實(shí)現(xiàn)手寫數(shù)字實(shí)驗(yàn)

發(fā)布時(shí)間: 2019-07-18 17:49:14

  人工智能AI培訓(xùn)_Tensorflow 2.0實(shí)現(xiàn)手寫數(shù)字實(shí)驗(yàn)

  1.實(shí)驗(yàn)介紹
  1.1.關(guān)于本實(shí)驗(yàn)
  本實(shí)驗(yàn)主要內(nèi)容是進(jìn)行手寫字體圖像的識(shí)別,用到的框架主要包括:TensorFlow2.0,主要用于深度學(xué)習(xí)算法的構(gòu)建,本實(shí)驗(yàn)以開源的手寫字體數(shù)據(jù)集為基礎(chǔ),基于Keras深度學(xué)習(xí)庫對(duì)手寫字體進(jìn)行識(shí)別。
  1.2.實(shí)驗(yàn)?zāi)康?br>  理解圖像識(shí)別的原理。
  掌握利用TensorFlow2.0構(gòu)建圖像識(shí)別模型。
  2.實(shí)驗(yàn)步驟
  2.1.導(dǎo)入實(shí)驗(yàn)環(huán)境
  步驟 1導(dǎo)入相應(yīng)的模塊
  Keras是一個(gè)高層神經(jīng)網(wǎng)絡(luò)API,Keras由純Python編寫而成并基于Tensorflow、Theano以及CNTK后端。Keras 支持快速實(shí)驗(yàn)。
  #導(dǎo)入相關(guān)依賴包
  import  os
  import  tensorflow as tf
  from tensorflow import keras
  from tensorflow.keras import layers, optimizers, datasets
  from matplotlib import pyplot as plt
  import numpy as np
  os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
  2.2.導(dǎo)入實(shí)驗(yàn)數(shù)據(jù)集
  步驟 2下載數(shù)據(jù)集
  TensorFlow2.0 的datasets中為我們提供了很多開源的數(shù)據(jù)集,可以直接執(zhí)行命令下載。
  #下載后,我們會(huì)得到含有60k的訓(xùn)練集xs,和10k的測(cè)試集ys,
  (x, y), (x_val, y_val) = datasets.mnist.load_data()
  步驟 3數(shù)據(jù)集格式轉(zhuǎn)換
  我們下載得到的數(shù)據(jù)集是numpy的格式,需要轉(zhuǎn)換成tensor。
  #將圖像轉(zhuǎn)化為tensor
  x = tf.convert_to_tensor(x, dtype=tf.float32) / 255.
  y = tf.convert_to_tensor(y, dtype=tf.int32)
  print(x.shape, y.shape)
  輸出結(jié)果:
  (60000, 28, 28) (60000,)
  步驟 4切分訓(xùn)練集與測(cè)試集
  train_dataset = tf.data.Dataset.from_tensor_slices((x, y))
  train_dataset = train_dataset.batch(200)
  步驟 5查看數(shù)據(jù)集信息
  本實(shí)驗(yàn)是文字識(shí)別,我們可以先打印查看前9張圖片,檢查圖片是否是正確的數(shù)據(jù)集。
  plt.figure()
  for i in range(9):
  plt.subplot(3,3,i+1)
  plt.imshow(x[i])
  plt.ylabel(y[i].numpy())
  plt.show()

  輸出結(jié)果:

?

  2.3.手寫字體圖像識(shí)別建模
  步驟 6初始化神經(jīng)網(wǎng)絡(luò)
  數(shù)據(jù)集準(zhǔn)備完成,接下來我們就需要構(gòu)建訓(xùn)練模型,我們首先需要建立初始化的神經(jīng)網(wǎng)絡(luò)。
  #調(diào)用全連接784->512->256->10, 激活函數(shù)選擇Relu進(jìn)行映射
  model=keras.Sequential([
  layers.Dense(512, activation='relu'),
  layers.Dense(256, activation='relu'),
  layers.Dense(10)
  ])
  步驟 7定義學(xué)習(xí)率更新規(guī)則
  設(shè)置模型的學(xué)習(xí)率參數(shù)。
  #給出學(xué)習(xí)率(步長(zhǎng))進(jìn)行更新
  optimizer=optimizers.SGD(learning_rate=0.001)
  步驟 8構(gòu)建模型訓(xùn)練函數(shù)
  神經(jīng)網(wǎng)絡(luò)的模型參數(shù)更新是一個(gè)迭代的過程,所以我們可以將模型訓(xùn)練的過程定義成一個(gè)函數(shù),從而進(jìn)行模型的訓(xùn)練。
  def train_epoch(epoch):
  # Step4.loop
  for step, (x, y) in enumerate(train_dataset):
  with tf.GradientTape() as tape:
  # 將圖像由二維矩陣轉(zhuǎn)化為向量;[b, 28, 28] => [b, 784]
  x = tf.reshape(x, (-1, 28*28))
  #將label用獨(dú)熱碼表示,例5:[0,0,0,0,0,1,0,0,0,0]
  y = tf.one_hot(y, depth=10)
  # 將圖像導(dǎo)入模型開始預(yù)測(cè)
  # [b, 784] => [b, 10]
  out = model(x)
  # 計(jì)算 loss
  print(np.size(x))
  loss = tf.reduce_sum(tf.square(out - y)) / x.shape[0]
  # 更新。optimize and update w1, w2, w3, b1, b2, b3
  grads = tape.gradient(loss, model.trainable_variables)
  # w' = w - lr * grad
  optimizer.apply_gradients(zip(grads, model.trainable_variables))
  if step % 100 == 0:
  print(epoch, step, 'loss:', loss.numpy())
  return loss
  步驟 9構(gòu)建繪圖函數(shù)
  繪制train loss與epoch的關(guān)系圖,這樣我們就可以查看模型訓(xùn)練的每一步損失值。
  def plot_figure(y):
  #作出train loss與epoch的關(guān)系圖
  x = range(0, np.size(y))
  plt.figure(1)
  plt.plot(x, y, 'o-')
  plt.title('epoches')
  plt.ylabel('Train loss')
  plt.show()
  步驟 10構(gòu)建模型訓(xùn)練函數(shù)
  定義模型訓(xùn)練函數(shù)用于進(jìn)行模型訓(xùn)練:
  def train():
  #創(chuàng)建list用于保存loss值
  loss_list = []
  for epoch in range(30):
  loss= train_epoch(epoch)
  loss_list.append(loss)
  plot_figure(loss_list)
  步驟 11執(zhí)行模型訓(xùn)練
  執(zhí)行定義好的模型訓(xùn)練函數(shù)進(jìn)行模型訓(xùn)練:
  if __name__ == '__main__':
  train()
  輸出結(jié)果:
  展示最后10次的模型訓(xùn)練損失值:
  20 0 loss: 1.1279364
  156800
  21 0 loss: 1.1141373
  156800
  22 0 loss: 1.1015469
  156800
  23 0 loss: 1.0899687
  156800
  24 0 loss: 1.0792384
  156800
  25 0 loss: 1.0692606
  156800
  26 0 loss: 1.0599515
  156800
  27 0 loss: 1.0512612
  156800
  28 0 loss: 1.0431163
  156800
  29 0 loss: 1.0354265

  train loss與epoch的關(guān)系圖:


  本實(shí)驗(yàn)利用網(wǎng)上已有的北京房?jī)r(jià)數(shù)據(jù)集預(yù)測(cè)了北京的房?jī)r(jià),實(shí)現(xiàn)了TensorFlow的線性回歸應(yīng)用。

上一篇: 大數(shù)據(jù)培訓(xùn)_基于solr的Hbase秒級(jí)查詢方案

下一篇: 思科認(rèn)證體系知識(shí)

在線咨詢 ×

您好,請(qǐng)問有什么可以幫您?我們將竭誠提供最優(yōu)質(zhì)服務(wù)!