日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

04_面向初学者的快速入门、建立图像分类的一个神经网络、训练这个神经网络、评估模型的精确度

發(fā)布時間:2024/9/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 04_面向初学者的快速入门、建立图像分类的一个神经网络、训练这个神经网络、评估模型的精确度 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

翻譯自:https://tensorflow.google.cn/tutorials/quickstart/beginner

這是一個的使用Keras做如下事情的簡短介紹:

  • 建立圖像分類的一個神經網絡。
  • 訓練這個神經網絡。
  • 最后,評估模型的精確度
  • 下載和安裝TensorFlow 2。在你的應用程序中導入TensorFlow:

    from __future__ import absolute_import, division, print_function, unicode_literals import tensorflow as tf

    載入并準備好MNIST數(shù)據(jù)集,將樣本由整數(shù)轉化為浮點數(shù):

    mnist = tf.keras.datasets.mnist (x_train,y_train),(x_test,y_test) = mnist.load_data() x_train,x_test = x_train / 255.0,x_test / 255.0

    將模型的各層堆疊起來,以搭建tf.keras.Sequential模型。為訓練選擇優(yōu)化器和損失函數(shù)。

    model = tf.keras.models.Sequential([tf.keras.layers.Flatten(input_shape=(28, 28)),tf.keras.layers.Dense(128, activation='relu'),tf.keras.layers.Dropout(0.2),tf.keras.layers.Dense(10) ])

    為每個例子模型返回一個向量的"logits"和”log-odds”分數(shù),一個案例如下:

    predictions = model(x_train[:1]).numpy() print(predictions)

    輸出結果如下:

    [[ 0.3304124 0.21085967 -0.26375788 0.18900187 -0.38255388 -0.42568913-0.5831184 0.68005246 0.11979596 0.22090217]]

    tf.nn.softmax函數(shù)將logits轉化為每個類的概率。

    tf.nn.softmax(predictions).numpy() print(tf.nn.softmax(predictions).numpy())

    輸出結果如下:

    [[0.08072349 0.15725857 0.10213858 0.08166214 0.12849897 0.119416420.09160781 0.10133947 0.05636909 0.08098544]]

    The losses.SparseCategoricalCrossentropy loss takes a vector of logits and a True index and returns a scalar loss for each example.

    loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

    這個損失等于真實類的負對數(shù)概率,如果模型確定這個類是正確的,那么它是零。

    這個未經訓練的模型給出了接近隨機的概率(每個類的1/10),因此這個最原初的loss可能接近于-tf.log(1/10) ~= 2.3。

    loss_fn(y_train[:1], predictions).numpy()

    輸出結果:

    3.2944663 model.compile(optimizer='adam',loss=loss_fn,metrics=['accuracy'])

    The Model.fit method adjusts the model parameters to minimize the loss:

    model.fit(x_train,y_train,epochs=5)

    輸出結果:

    Epoch 1/5 1875/1875 [==============================] - 3s 1ms/step - loss: 0.2981 - accuracy: 0.9123 Epoch 2/5 1875/1875 [==============================] - 3s 2ms/step - loss: 0.1431 - accuracy: 0.9582 Epoch 3/5 1875/1875 [==============================] - 3s 1ms/step - loss: 0.1062 - accuracy: 0.9679 Epoch 4/5 1875/1875 [==============================] - 3s 1ms/step - loss: 0.0860 - accuracy: 0.9735 Epoch 5/5 1875/1875 [==============================] - 3s 1ms/step - loss: 0.0731 - accuracy: 0.9776

    Model.evaluate方法檢查這個模型的性能,通過是在”驗證集”或”測試集”上。

    model.evaluate(x_test,y_test,verbose=2)

    輸出結果:

    [0.0841476172208786, 0.9760000109672546]

    在這個數(shù)據(jù)集上,這個圖片分類的模型訓練的準確率約等于98%。如果想了解更多關于這方面的內容,可以閱讀 TensorFlow tutorials.(https://tensorflow.google.cn/tutorials/)

    如果你想你的模型返回一個概率,你可以包裹你的model對象,并且附帶softmax。如下:

    probability_model = tf.keras.Sequential([model,tf.keras.layers.Softmax() ])print(probability_model(x_test[:5]))

    輸出結果:

    tf.Tensor( [[6.64528272e-08 7.67723236e-08 7.54364783e-06 3.53052717e-046.87170390e-11 3.60848901e-07 2.23684981e-12 9.99635696e-011.65168018e-07 3.13543705e-06][4.35788428e-09 1.10600071e-04 9.99865294e-01 8.18846547e-067.86288894e-14 1.47804167e-06 2.56378456e-07 2.10501798e-121.42125145e-05 1.13504149e-16][4.76928733e-07 9.98138189e-01 6.59115176e-05 5.00368878e-051.88655074e-04 4.11117344e-06 2.92819695e-05 9.81064513e-045.41346439e-04 7.17659077e-07][9.99821723e-01 2.42099341e-10 8.32889509e-06 8.88995942e-074.28884217e-09 8.21065169e-06 1.50513850e-04 8.60030013e-065.22520800e-08 1.76794254e-06][7.08432890e-06 4.52548754e-09 8.52964968e-06 8.69868177e-099.96985734e-01 3.78219802e-08 3.12174535e-07 1.97316593e-042.47502101e-07 2.80086603e-03]], shape=(5, 10), dtype=float32)

    整體的代碼是:

    # -*- coding: UTF-8 -*-from __future__ import absolute_import, division, print_function, unicode_literals import tensorflow as tffrom tensorflow.keras.layers import Dense, Flatten, Conv2D from tensorflow.keras import Modelmnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0# Add a channels dimension x_train = x_train[...,tf.newaxis] x_test = x_test[...,tf.newaxis]train_ds = tf.data.Dataset.from_tensor_slices((x_train, y_train)).shuffle(10000).batch(32) test_ds = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)class MyModel(Model):def __init__(self):super(MyModel, self).__init__()self.conv1 = Conv2D(32, 3, activation='relu')self.flatten = Flatten()self.d1 = Dense(128, activation='relu')self.d2 = Dense(10, activation='softmax')def call(self, x):x = self.conv1(x)x = self.flatten(x)x = self.d1(x)return self.d2(x)model = MyModel()loss_object = tf.keras.losses.SparseCategoricalCrossentropy() optimizer = tf.keras.optimizers.Adam()train_loss = tf.keras.metrics.Mean(name='train_loss') train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='train_accuracy')test_loss = tf.keras.metrics.Mean(name='test_loss') test_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='test_accuracy')@tf.function def train_step(images, labels):with tf.GradientTape() as tape:predictions = model(images)loss = loss_object(labels, predictions)gradients = tape.gradient(loss, model.trainable_variables)optimizer.apply_gradients(zip(gradients, model.trainable_variables))train_loss(loss)train_accuracy(labels, predictions)@tf.function def test_step(images, labels):predictions = model(images)t_loss = loss_object(labels, predictions)test_loss(t_loss)test_accuracy(labels, predictions)EPOCHS = 5 for epoch in range(EPOCHS):# 在下一個epoch開始是,重置評估指標train_loss.reset_states()train_accuracy.reset_states()test_loss.reset_states()test_accuracy.reset_states()for images, labels in train_ds:train_step(images,labels)for test_images,test_labels in test_ds:test_step(test_images,test_labels)template = "Epoch {}, Loss: {}, Accuracy: {}, Test Loss: {}, Test Accuracy: {}"print(template.format(epoch + 1,train_loss.result(),train_accuracy.result() * 100,test_loss.result(),test_accuracy.result() * 100))

    輸出:

    [[-0.28416255 0.22787774 0.1536147 0.1858716 0.06911337 0.829228940.21581247 0.5613003 0.44787267 -0.02493771]] [[0.0566914 0.09460051 0.0878297 0.09070901 0.0807129 0.172606420.09346598 0.13203742 0.11787888 0.07346781]] 1.7567413 Epoch 1/5 1875/1875 [==============================] - 3s 1ms/step - loss: 0.2980 - accuracy: 0.9137 Epoch 2/5 1875/1875 [==============================] - 3s 1ms/step - loss: 0.1436 - accuracy: 0.9563 Epoch 3/5 1875/1875 [==============================] - 3s 1ms/step - loss: 0.1051 - accuracy: 0.9681 Epoch 4/5 1875/1875 [==============================] - 3s 1ms/step - loss: 0.0875 - accuracy: 0.9730 Epoch 5/5 1875/1875 [==============================] - 3s 1ms/step - loss: 0.0754 - accuracy: 0.9762 313/313 - 0s - loss: 0.0728 - accuracy: 0.9784 [0.07283254712820053, 0.9783999919891357] tf.Tensor( [[6.64528272e-08 7.67723236e-08 7.54364783e-06 3.53052717e-046.87170390e-11 3.60848901e-07 2.23684981e-12 9.99635696e-011.65168018e-07 3.13543705e-06][4.35788428e-09 1.10600071e-04 9.99865294e-01 8.18846547e-067.86288894e-14 1.47804167e-06 2.56378456e-07 2.10501798e-121.42125145e-05 1.13504149e-16][4.76928733e-07 9.98138189e-01 6.59115176e-05 5.00368878e-051.88655074e-04 4.11117344e-06 2.92819695e-05 9.81064513e-045.41346439e-04 7.17659077e-07][9.99821723e-01 2.42099341e-10 8.32889509e-06 8.88995942e-074.28884217e-09 8.21065169e-06 1.50513850e-04 8.60030013e-065.22520800e-08 1.76794254e-06][7.08432890e-06 4.52548754e-09 8.52964968e-06 8.69868177e-099.96985734e-01 3.78219802e-08 3.12174535e-07 1.97316593e-042.47502101e-07 2.80086603e-03]], shape=(5, 10), dtype=float32)

    總結

    以上是生活随笔為你收集整理的04_面向初学者的快速入门、建立图像分类的一个神经网络、训练这个神经网络、评估模型的精确度的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久91精品国产 | 锦绣未央在线观看 | 天天爱夜夜操 | 很黄很污的视频网站 | 草草草在线观看 | 少妇无码av无码专区在线观看 | 天天射日日操 | 男女ss视频| 欧美色欧美 | 欧美成人精品在线 | 在线观看av国产一区二区 | 97福利社 | 中文字幕码精品视频网站 | 国产福利免费看 | 亚洲日本黄色 | 精品一区二区三区四 | 日韩精品色哟哟 | 日韩三区四区 | 亚洲精华国产精华精华液网站 | 免费看成人aa片无码视频羞羞网 | 国产农村妇女毛片精品久久麻豆 | 亚洲二区一区 | 久久亚洲国产成人精品性色 | 天天射天天舔 | 国产啊啊啊啊 | 久久精品亚洲精品国产欧美 | 亚洲美女福利 | 欧美色射 | 亚洲 小说 欧美 激情 另类 | 超碰人人人人人 | 一道本久在线中文字幕 | 短视频在线观看 | 国产精品18久久久久久久久 | 午夜精品福利视频 | 4438x亚洲 | 99久久99久久精品国产片桃花 | 国产男女猛烈无遮挡a片漫画 | 色爱色 | 九九这里只有精品视频 | 久久成人毛片 | 99在线精品视频免费观看20 | 欧美区在线观看 | 天堂在线www | 男女乱淫视频 | 色噜噜日韩精品欧美一区二区 | 青娱乐久久 | 激情涩涩| 精品人妻午夜一区二区三区四区 | 国产精品三级久久久久久电影 | 精品国产1区2区 | 欧美在线中文 | 森林影视官网在线观看 | 伊人在线 | 色噜av | 国产永久视频 | 高清av网址 | 日韩一二三区 | h片在线免费观看 | 毛片资源 | 超碰在线香蕉 | 麻豆美女视频 | 污污视频免费观看 | 顶级嫩模啪啪呻吟不断好爽 | 超碰一区 | 打屁屁日本xxxxx变态 | 免费欧美| 欧美精品网站 | 青青国产精品 | 日韩精品一二区 | 天堂国产精品 | 五月天丁香久久 | 国产盗摄视频在线观看 | 亚州av影院| 思思久久精品 | 久久人妻少妇嫩草av无码专区 | 69人妻精品久久无人专区 | 99视频这里有精品 | 成人免费无码av | av观看国产| 国产精品video| 日本三级视频在线观看 | 妻色成人网 | 亚洲在线天堂 | 樱花草涩涩www在线播放 | 国产精品日韩精品欧美精品 | 国内9l自拍 | 美女被爆操网站 | 午夜福利一区二区三区 | 免费手机av| 日本三级一区 | 欧美国产一区二区在线观看 | 五月综合激情 | 美女搞黄视频网站 | 麻豆网站免费看 | 国产精品久久久久久久久免费桃花 | 久久久久久久久免费 | 久久国产精品系列 | 肉丝袜脚交视频一区二区 | 一区二区三区中文视频 |