tensorflow + numpyディープラーニング関連機能(継続的な更新)

 

 

テンソルフローアルゴリズム

import tensorflow as tf
tf.add(a,b)         #加法
tf.subtract(a,b)    #减法
tf.multiply(x,y)    #乘法
tf.div(x,y)         #整除
tf.truediv(x,y)     #浮点数除法
tf.mod(x,y)         #取余

 

tf.reduce_mean()

tf.reduce_mean関数は、指定された数軸(テンソルの特定の次元)に沿ったテンソルテンソルの平均値を計算するために使用されます。これは主に、次元を縮小するか、テンソル(画像)の平均値を計算するために使用されます。

接口为:

reduce_mean(input_tensor,
                axis=None,
                keep_dims=False,
                name=None,
                reduction_indices=None)
  • 最初のパラメーターinput_tensor:縮小される入力テンソル。
  • 2番目のパラメータ軸:指定された軸。指定されていない場合は、すべての要素の平均値が計算されます。
  • 3番目のパラメーターkeep_dims:次元を減らすかどうか(Trueに設定)、出力結果は入力テンソルの形状を維持し、Falseに設定すると、出力結果は次元を減らします。
  • 4番目のパラメーター名:操作の名前。
  • 5番目のパラメーターreduction_indices:以前のバージョンで軸を指定するために使用されていましたが、非推奨になりました。

例えば:

import tensorflow as tf
 
x = [[1,2,3],
      [1,2,3]]
 
xx = tf.cast(x,tf.float32)
 
mean_all = tf.reduce_mean(xx, keep_dims=False)
mean_0 = tf.reduce_mean(xx, axis=0, keep_dims=False)
mean_1 = tf.reduce_mean(xx, axis=1, keep_dims=False)
 
 
with tf.Session() as sess:
    m_a,m_0,m_1 = sess.run([mean_all, mean_0, mean_1])
 
print m_a    # output: 2.0
print m_0    # output: [ 1.  2.  3.]
print m_1    #output:  [ 2.  2.]

同様の機能

  • tf.reduce_sum:指定されたテンソル軸上のすべての要素の累積合計を計算します。
  • tf.reduce_max:指定されたテンソル軸の方向の各要素の最大値を計算します。
  • tf.reduce_all:テンソルで指定された軸方向の各要素の論理和(および演算)を計算します。
  • tf.reduce_any:指定されたテンソル軸上の各要素の論理OR(または演算)を計算します。

 

例:linalg.norm()-范数

Inalg = linear(linear)+ algebra(algebra)、normはノルムを意味します。

x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False)

1. x:行列を表します(1次元にすることができます)

2. ord:ノルムタイプ

ベクトルの3つの規範:

マトリックスの3つの規範:

3.軸:処理タイプ

4.維持:マトリックスの2次元特性を維持するかどうか

Trueは、マトリックスの2次元特性を維持することを意味し、Falseは逆に

例:


import numpy as np
x = np.array([
    [1, 2, 3],
    [2, 4, 6]])
print "默认参数(矩阵2范数,不保留矩阵二维特性)        :", np.linalg.norm(x)
print "矩阵2范数,保留矩阵二维特性:", np.linalg.norm(x, keepdims=True)
print "矩阵1范数(列和的最大值)   :", np.linalg.norm(x, ord=1,keepdims=True)
print "矩阵2范数(求特征值,然后求最大特征值得算术平方根):", np.linalg.norm(x, ord=2, keepdims=True)
print "矩阵∞范数(行和的最大值)   :", np.linalg.norm(x, ord=np.inf, keepdims=True)
print "矩阵每个行向量求向量的2范数:", np.linalg.norm(x, axis=1, keepdims=True)
print "矩阵每个列向量求向量的2范数:", np.linalg.norm(x, axis=0, keepdims=True)
print "矩阵每个行向量求向量的1范数:", np.linalg.norm(x, ord=1, axis=1, keepdims=True)
print "矩阵每个列向量求向量的1范数:", np.linalg.norm(x, ord=1, axis=0, keepdims=True)


出力結果は次のとおりです。

默认参数(矩阵2范数,不保留矩阵二维特性)        : 8.36660026534
矩阵2范数,保留矩阵二维特性: [[8.36660027]]
矩阵1范数(列和的最大值)   : [[9.]]
矩阵2范数(求特征值,然后求最大特征值得算术平方根): [[8.36660027]]
矩阵∞范数(行和的最大值)   : [[12.]]
矩阵每个行向量求向量的2范数: [[3.74165739]
 [7.48331477]]
矩阵每个列向量求向量的2范数: [[2.23606798 4.47213595 6.70820393]]
矩阵每个行向量求向量的1范数: [[ 6.]
 [12.]]
矩阵每个列向量求向量的1范数: [[3. 6. 9.]]

 


参考資料:

【1】https://blog.csdn.net/Liang_xj/article/details/85005243

【2】https://blog.csdn.net/dcrmg/article/details/79797826

おすすめ

転載: blog.csdn.net/allein_STR/article/details/111222195