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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习(10)TensorFlow基础操作六: 数学运算

發布時間:2023/12/15 pytorch 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习(10)TensorFlow基础操作六: 数学运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深度學習(10)TensorFlow基礎操作六: 數學運算

  • 1. Operation type
  • 2. + - * / % //
  • 3. tf.math.log & tf.exp
  • 4. log2, log10?
  • 5. pow, sqrt
  • 6. @ & matmul
  • 7. With Broadcasting
  • 8. Recap
  • 9. Y=X@W+bY=X@W+bY=X@W+b
  • 10. out=relu(X@W+b)out=relu(X@W+b)out=relu(X@W+b)

第四章 TensorFlow基礎操作
06 數學運算
Outline

        • /
  • **, pow, squre
  • sqrt
  • //, %
  • exp, log
  • @, matmul
  • linear layer

1. Operation type

(1) element-wise

  • {+ - * /}

(2) matrix-wise

  • @, matmul

(3) dim-wise

  • reduce_mean/max/min/sum

2. + - * / % //

b = tf.fill([2, 2], 2.): 2×2的元素都為2的Tensor;
a = tf.ones([2, 2]): 2×2的元素都為1的Tensor;
(1) a + b: 2×2的元素都為3的Tensor;
(2) a - b: 2×2的元素都-1的Tensor;
(3) a * b: 2×2的元素都為2的Tensor;
(4) a / b: 2×2的元素都為0.5的Tensor;
(5) b // a: 整除操作,得到2×2的元素都為2的Tensor;
(6) b % a: 余除操作,得到2×2的元素都為0的Tensor;

3. tf.math.log & tf.exp

(1) tf.math.log(a): logealog_ealoge?a,因為loge1=0log_e1=0loge?1=0,所以得到2×2的元素都為0的Tensor;
(2) tf.exp(a): eae^aea,因為e1=ee^1=ee1=e,而e≈2.7182817e≈2.7182817e2.7182817,所以得到2×2的元素都為2.7182817的Tensor;

4. log2, log10?

沒有這倆API,不過我們可以利用:
logablogac=logcb\frac{log_a b}{log_a c}=log_c bloga?cloga?b?=logc?b
→\to
logeblogec=logcb\frac{log_e b}{log_e c}=log_c bloge?cloge?b?=logc?b
來計算,如下圖所示:

(1) tf.math.log(8.)/tf.math.log(2.): log28=3.0log_2 8=3.0log2?8=3.0;
(2) tf.math.log(100.)/tf.math.log(10.): log10100=2.0log_{10} 100=2.0log10?100=2.0;

5. pow, sqrt

(1) tf.pow(b, 3): n次方操作,因為23=82^3=823=8,所以得到2×2的元素都為8的Tensor;
(2)b**3: 與tf.pow(b, 3)的作用一樣,所以得到2×2的元素都為8的Tensor;
(3) tf.sqrt(b): 開方操作,因為√2≈1.4142135√2≈1.414213521.4142135,所以得到2×2的元素都為1.4142135的Tensor;

6. @ & matmul

(1) a@b: 矩陣a與矩陣b相乘,得到2×2的元素都為4的Tensor;
(2) tf.matmul(a, b): 作用與a@b一樣;

a = tf.ones([4, 2, 3]): 可以看成是4個2×3的矩陣元素都為1的Tensor;
a = tf.fill([4, 2, 3], 2.): 可以看成是4個2×3的矩陣元素都為2的Tensor;
(3) a@b: 可以看成是[2, 3]的矩陣和[3, 5]的矩陣相乘,這個操作是可以并行的,我們可以一次并行4個這樣的操作,所以得到4個2×5的矩陣,所以其shape=[4, 2, 5];
(4) tf.matmul(a, b): 作用與a@b一樣;

7. With Broadcasting

(1) bb = tf.broadcast_to(b, [4, 3, 5]): 使用Broadcasting方法將b.shape由[3, 5]變為[4, 3, 5];
(2) a@bb: 可以看成是[2, 3]的矩陣和[3, 5]的矩陣相乘,這個操作是可以并行的,我們可以一次并行4個這樣的操作,所以得到4個2×5的矩陣,所以其shape=[4, 2, 5];

8. Recap

  • y=w?x+by=w*x+by=w?x+b
  • Y=X@W+bY=X@W+bY=X@W+b
  • [x00x01x10x11][w00w01w02w10w11w12]+[b0,b1,b2]→[y00y01y02y10y11y12]\begin{bmatrix}x_0^0&x_0^1\\x_1^0&x_1^1\end{bmatrix}\begin{bmatrix}w_{00}&w_{01}&w_{02}\\w_{10}&w_{11}&w_{12}\end{bmatrix}+[b_0,b_1,b_2]\to\begin{bmatrix}y_0^0&y_0^1&y_0^2\\y_1^0&y_1^1&y_1^2 \end{bmatrix}[x00?x10??x01?x11??][w00?w10??w01?w11??w02?w12??]+[b0?,b1?,b2?][y00?y10??y01?y11??y02?y12??]
  • [b,2]→[b,3][b,2]→[b,3][b,2][b,3]

9. Y=X@W+bY=X@W+bY=X@W+b

10. out=relu(X@W+b)out=relu(X@W+b)out=relu(X@W+b)

參考文獻:
[1] 龍良曲:《深度學習與TensorFlow2入門實戰》

總結

以上是生活随笔為你收集整理的深度学习(10)TensorFlow基础操作六: 数学运算的全部內容,希望文章能夠幫你解決所遇到的問題。

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