tensorflow2 0由入門到放棄(持續更新)

2021-09-29 18:34:34 字數 2058 閱讀 9318

一、回歸(使用tf.keras訓練模型)

1-在jupyter notebook環境中執行程式

import pandas as pd//pandas為資料處理工具

data = pd.

read_csv

('eee.csv'

)//在建立的notebook檔案當前目錄下建立csv資料檔案,並匯入。圖中csv檔案為自己簡單建立。

data//顯示資料

import matplotlib.pyplot as plt

%matplotlib inline

plt.

scatter

(data.ed, data.mm)

//繪圖

x=data.ed

y=data.mm//定義x軸、y軸資料

model = tf.keras.

sequential()

//使用順序模型sequential

model.

add(tf.keras.layers.

dense(1

,input_shape=(1

,)))

//添dense層-確定輸入輸出維度為1

model.

summary()

//檢視模型

model.

compile

(optimizer=

'adam'

,//優化方法

loss=

'mse'

//損失函式-均方差

)//編譯

history = model.

fit(x, y, epochs=

5000

)//記錄訓練過程

張量依據維數可以分為一維、二維和三維張量,舉例分別為[1,2,3] [[1,2,3],[4,5,6]] [[[1,2,3],[4,5,6]], [[7,8,9],[10,11,12]]]

可以理解為向量,矩陣和多頁矩陣。

張量的階數也稱為維度,或軸axis。

比如乙個矩陣[[1,2],[3,4]],是個二維張量,有兩個維度。

沿著第0個軸可以看到 [1,2] [3,4],按行取出,每一行作為乙個向量;

沿著第1個軸可以看到[1,3] [2,4] ,按列取出,每一列作為乙個向量。

import numpy as np

a = np.array([[1,2],[3,4]])

s0 = np.sum(a, axis=0) #即[1,2],[3,4]相加

s1 = np.sum(a, axis=1) #即[1,3],[2,4]相加

print(s0)

print(s1)

結果顯示為:

[4, 6]

[3, 7]

形象話理解

具體見輸出維度在哪個維度上求和則相應去掉哪個維度。比如3x2x2,在axis=0上求和,則輸出2x2.

三、誤差計算相關概念

3.1均方差

mse函式把輸出向量和真實向量對映到笛卡爾座標系兩個點,計算歐式距離衡量誤差;

3.2交叉熵

資訊熵來衡量資訊的不確定度,熵越大,不確定性越大

TensorFlow2 0入門筆記 3

tensorflow2.0求梯度預設是eager模式,每行 順序執行,沒有了構建圖的過程 也取消了control dependency的用法 要乙個上下文管理器 context manager 來連線需要計算梯度的函式和變數,方便求解同時也提公升效率。from future import absol...

tensorflow2 0視訊記憶體設定

遇到乙個問題 新買顯示卡視訊記憶體8g但是tensorflow執行的時候介面顯示只有約6.3g的視訊記憶體可用,如下圖 即限制了我的視訊記憶體,具體原因為什麼我也不知道,但原來的視訊記憶體小一些的顯示卡就沒有這個問題。目前的解決辦法是 官方文件解決 然後對應的中文部落格 總結一下,就是下面的兩個辦法...

Tensorflow2 0 啟用函式

常用啟用函式及對應特點 神經網路結構的輸出為所有輸入的加權和,這導致整個神經網路是乙個線性模型。而線性模型不能解決異或問題,且面對多分類問題,也顯得束手無策。所以為了解決非線性的分類或回歸問題,啟用函式必須是非線性函式。神經網路中啟用函式的主要作用是提供網路的非線性建模能力。這是因為反向傳播演算法就...