tensorflow學習筆記--張量和基本運算

張量
張量的階和數據類型
(1)張量的屬性:
graph:張量所屬的默認圖
op:張量的操作名
name:張量的字符串描述
shape:張量形狀
一維{5}二維{2,3}三維{2,3,4}

import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
a = tf.constant(5.0)
graph = tf.get_default_graph()
plt = tf.placeholder(tf.float32, [2, 3])
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
    print(a.graph)
    print(a.shape)
    print(plt.shape)
    print(a.name)
    print(a.op)

在這裏插入圖片描述
(2)動態形狀和靜態形狀:在於有沒有生成一個新的張量數據
Numpy:reshape把原來的數據通過直接修改
**靜態形狀:**創建一個張量,初始狀態的形狀
tf.Tensor.get_shape()獲取靜態形狀
tf.Tensor.set_shape()更新Tensor對象的靜態形狀
動態形狀:一種描述原始張量在執行過程中的一種形狀(動態變化)
tf.reshape創建一個具有不同形狀的新張量

# 形狀的概念,靜態形狀和動態形狀
# 對於靜態形狀來說,一旦張量形狀固定了,不能再次設置靜態形狀,不能跨維度修改
# 動態形狀可以去創建一個新的張量,改變的時候一定要注意元素數量一定要匹配
import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
plt = tf.placeholder(tf.float32, [None, 2])
print(plt)
plt.set_shape([3, 2])
print(plt)

plt_shape = tf.reshape(plt, [2, 3])
print(plt_shape)
with tf.Session() as sess:
    pass

在這裏插入圖片描述
(4)創建隨機張量
從正態分佈中輸出隨機值,由隨機正態分佈的數字組成的矩陣,stddev=1.0就是標準差,方差反映了數據的離散程度

tf.random_normal(shape, mean=0.0,
 stddev=1.0, dtype=tf.float32, 
 seed=None, name=None)

(5)張量變換

tf.string_to_number(string_tensor,out_type=None,name=None)
tf.to_double(x,name="todouble")
tf.to_float(x,name=)
tf.to_int32(x,name=)
tf.to_int64(x,name=)
tf.cast(x,dtype,name=None)
# 常用
tf.cast([[1, 2, 3], [4, 5, 6]], tf.float32)

(6)切片與拓展

tf.concat(values,axis,name="concat")
import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

a = [[1, 2, 3], [4, 5, 6]]
b = [[7, 8, 8], [7, 8, 6]]
c = tf.concat([a, b], axis=0)
d = tf.concat([a, b], axis=1)
with tf.Session() as sess:
    print(sess.run(c))
    print(sess.run(d))

在這裏插入圖片描述
(7)算術運算符、基本數學函數、矩陣運算、減少維度的運算(求均值)、序列運算
這些在官網上有記載API的使用,需要使用的時候再官網進行查閱

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章