天天看點

Tensorflow學習之初級(一)

1、實驗平台搭建基礎

Jupyter  (程式編輯調試工具)

TensorFlow 2.0-機器學習架構

python Programming--  Python運作環境

2、Jupyter 使用

%config IPCompleter.greedy=True     #TAB鍵代碼自動提示
           
 import tensorflow as tf
      print(tf.__version__)  #檢視tf版本
           

  Jupyter 中執行指令行: ctrl+enter 鍵

3、一個神經元網絡的搭建

如何根據X得到Y?

例如: X= -1,0,1,2,3,4

             Y=-3,-1, 1,3,5, 

              Y =2X-1TensorFlow 搭模組化型:

#構模組化型     #keras為tensorflow中的進階API

model = keras.Sequential([keras.layers.Dense(units=1,input_shape=[1])])
model.compile(optimizer='sgd ', loss='mean_squared_error ')   #指定優化模型以及損失函數
           

    model = keras.Sequential([keras.layers.Dense(units=1,input_shape=[1])])

    model.compile(optimizer='sgd ', loss='mean_squared_error ')   #指定優化模型以及損失函數

#準備訓練資料

xs=np.array([-1.0,0.8,1.8,2.0,3.8,4.0],dtype=float)
ys=np.array([-3.0,-1.0,1.0,3.0,5.0,7.0],dtype=float)
           

    xs=np.array([-1.0,0.8,1.8,2.0,3.8,4.0],dtype=float)

   ys=np.array([-3.0,-1.0,1.0,3.0,5.0,7.0],dtype=float)

#訓練模型

model.fit(xs,ys,epochs=500)
           

  model.fit(xs,ys,epochs=500) 

#使用模型

print ( model.predict( [ 10.0]))
           

   print ( model.predict( [ 10.0]))

第二部分:機器視覺(圖檔分類)

2.2、加載Fashion MNIST資料集(分類衣服、鞋子等10個類别)

from tensorflow import keras
fashion_mnist = keras.datasets.fashion _mnist
(train_images, train_labels), (test_images, test_labels)=fashion_mnist.load_data() #加載資料

print(train_images.shape)  #加載完檢視加載的具體資料為:60000張照片,灰階為28*28
(60000,28,28)
print(train_labels.shape)  #加載完檢視标簽加載的具體資料為:60000張照片,
(60000,)
print(train_labels[ :5])   #檢視前5個标簽的
[9 0 0 3 0]

import matplotlib.pyplot as plt
plt.imshow(train_images[0])   #檢視圖檔具體什麼樣子
           

   from tensorflow import keras

   fashion_mnist = keras.datasets.fashion _mnist

  (train_images, train_labels), (test_images, test_labels)=fashion_mnist.load_data() #加載資料

   print(train_images.shape)  #加載完檢視加載的具體資料為:60000張照片,灰階為28*28

   (60000,28,28)

   print(train_labels.shape)  #加載完檢視标簽加載的具體資料為:60000張照片,

   (60000,)

   print(train_labels[ :5])   #檢視前5個标簽的

  [9 0 0 3 0]

   import matplotlib.pyplot as plt

   plt.imshow(train_images[0])   #檢視圖檔具體什麼樣子

2.3、構造神經元網絡模型#構造神經元模型

model = keras.Sequential([keras.layers.Flatten(input_shape=(28,28)), keras.layers.Dense(128,activation=tf.nn.relu),keras.layers.Dense(10,activation=tf.nn.softmax))])

import tensorflow as tf
from tensorflow import keras
import matplotlib.pyplot as plt
fashion_mnist=keras.datasets.fashion_mnist
(train_images,train_labels),(test_images, test_labels)=fashion_mnist.load_data()
           

model = keras.Sequential([keras.layers.Flatten(input_shape=(28,28)), keras.layers.Dense(128,activation=tf.nn.relu),keras.layers.Dense(10,activation=tf.nn.softmax))])

import tensorflow as tf

from tensorflow import keras

import matplotlib.pyplot as plt

fashion_mnist=keras.datasets.fashion_mnist

(train_images,train_labels),(test_images, test_labels)=fashion_mnist.load_data()

#搭模組化型(輸入、中間、輸出)

model=keras.Sequential()
model.add(keras.layers.Flatten(input_shape=(28,28)))
model.add(keras.layers.Dense(128,activation=tf.nn.relu))
model.add(keras.layers.Dense(10,activation=tf.nn.softmax))
mode1.summary()  
           

 model=keras.Sequential()

model.add(keras.layers.Flatten(input_shape=(28,28)))

model.add(keras.layers.Dense(128,activation=tf.nn.relu))

model.add(keras.layers.Dense(10,activation=tf.nn.softmax))

mode1.summary()  

#每一層添加了個bias (784+1)128=100480     (128+1)=1290

2.4訓練和評估模型

train_images_scaled=train_images/255
model.compile(optimizer=tf.optimizers.Adam(),loss=tf.keras.losses.sparse_categorical_crossentropy,metrics=['accuracy'])
model.fit(train_images_scaled,train_labels,epochs=5)
           

train_images_scaled=train_images/255

model.compile(optimizer=tf.optimizers.Adam(),loss=tf.keras.losses.sparse_categorical_crossentropy,metrics=['accuracy'])

model.fit(train_images_scaled,train_labels,epochs=5)

訓練結果 epoch 顯示截圖:

Tensorflow學習之初級(一)

評估模型:

test_images_scaled=test_images/255
model.evaluate(test_images_scaled,test_labels)
           

test_images_scaled=test_images/255

model.evaluate(test_images_scaled,test_labels) 

模型評估結果:

Tensorflow學習之初級(一)

繼續閱讀