<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
只想要216.8973那個數。
1、單個tensor
tensor.item()
就可以得到216.8973。
2、多個tensor
tensor.tolist()
完美解決~
list
np.array
tf.tensor
list
: 可以儲存不同資料型別,缺點不適合儲存較大的資料,如圖片np.array
: 解決同型別巨量資料資料的載體,方便資料運算,缺點是在深度學習之前就設計好的,不支援GPUtf.tensor
:更適合深度學習,支援GPUscalar
: 1.1vector
:[1.1] , [1.1,2.2,……]matrix
:[[1,2,3,],[4,5,6],[7,8,9]]torsor
:rank > 2 (一般指的是維度大於2的資料)但是,在tensorflow裡面我們把資料的資料都叫tensor
int
, float
, double
bool
string
建立不同型別的Tensor
import tensorflow as tf # 建立一個整型的資料 tf.constant(1) # Out[3]: <tf.Tensor: shape=(), dtype=int32, numpy=1> # 注意因為這裡的constant就是一個普通的tensor,不要理解為常數了(TF1.0是代表一個常數) # 建立一個浮點型別的資料 tf.constant(1.) # Out[4]: <tf.Tensor: shape=(), dtype=float32, numpy=1.0> # 若給定一個浮點型的資料,但是指定為int型別會報錯 tf.constant(2.2,dtype=tf.int32) # TypeError: Cannot convert 2.2 to EagerTensor of dtype int32 # 給一數指定雙精度 tf.constant(2.,dtype=tf.double) # Out[6]: <tf.Tensor: shape=(), dtype=float64, numpy=2.0> # 建立bool型別的資料 tf.constant([True,False]) # Out[7]: <tf.Tensor: shape=(2,), dtype=bool, numpy=array([ True, False])> # 建立字串型資料(很少用) tf.constant("hello,world") # Out[8]: <tf.Tensor: shape=(), dtype=string, numpy=b'hello,world'>
下面開始介紹Tensor常用的屬性
tf.device
import tensorflow as tf with tf.device("cpu"): a = tf.constant([1]) with tf.device("gpu"): b = tf.range(6) print(a.device) print(b.device) # 資料在CPU和GPU上的轉換 aa = a.gpu() print(aa.device) bb = b.cpu() print(bb.device)
輸出結果:
/job:localhost/replica:0/task:0/device:CPU:0
/job:localhost/replica:0/task:0/device:GPU:0
/job:localhost/replica:0/task:0/device:GPU:0
/job:localhost/replica:0/task:0/device:CPU:0
轉換為numpy
c = tf.range(10) #Out[14]: <tf.Tensor: shape=(10,), dtype=int32, numpy=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])> c.numpy() #Out[15]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Tensor的維度與形狀
d = tf.range(10) d.shape # Out[17]: TensorShape([10]) d.ndim # Out[18]: 1 # 用rank檢視tensor的維度(秩):返回的是一個tensor型別的資料 tf.rank(d) # Out[19]: <tf.Tensor: shape=(), dtype=int32, numpy=1> tf.rank(tf.ones([3,4,2])) # Out[20]: <tf.Tensor: shape=(), dtype=int32, numpy=3> # tf.name # 是Tensorflow1.0中的概念,現在基本已經淘汰了
python中判斷一個資料是不是Tensor
import numpy as np import tensorflow as tf a = tf.constant(1.) b = tf.constant([True,False]) c = tf.constant("hello,world") d = np.arange(4) isinstance(a,tf.Tensor) # Out[27]: True tf.is_tensor(b) # Out[28]: True tf.is_tensor(d) # Out[29]: False a.dtype,b.dtype,c.dtype,d.dtype # Out[32]: (tf.float32, tf.bool, tf.string, dtype('int32')) a.dtype == tf.float32 Out[33]: True c.dtype == tf.string Out[34]: True
資料型別的轉換
a = np.arange(5) a.dtype Out[36]: dtype('int32') aa = tf.convert_to_tensor(a) # numpy資料轉化方法為.astype(np.int64) # Out[38]: <tf.Tensor: shape=(5,), dtype=int32, numpy=array([0, 1, 2, 3, 4])> aa = tf.convert_to_tensor(a, dtype=tf.float32) # Out[40]: <tf.Tensor: shape=(5,), dtype=float32, numpy=array([0., 1., 2., 3., 4.], dtype=float32)> # 用頭tf.cast()資料轉化 tf.cast(aa,dtype = tf.float32) # Out[41]: <tf.Tensor: shape=(5,), dtype=float32, numpy=array([0., 1., 2., 3., 4.], dtype=float32)> aaa = tf.cast(aa,dtype=tf.double) # Out[43]: <tf.Tensor: shape=(5,), dtype=float64, numpy=array([0., 1., 2., 3., 4.])> tf.cast(aaa,dtype=tf.int32) # Out[44]: <tf.Tensor: shape=(5,), dtype=int32, numpy=array([0, 1, 2, 3, 4])> # bool 與 int 的轉化 b = tf.constant([0,1]) tf.cast(b,tf.bool) # Out[46]: <tf.Tensor: shape=(2,), dtype=bool, numpy=array([False, True])> bb = tf.cast(b,dtype=tf.bool) tf.cast(bb,tf.int32) # Out[48]: <tf.Tensor: shape=(2,), dtype=int32, numpy=array([0, 1])>
tf.Variable
tf.Variable在tensorflow中相比tf.constan一樣也是Tensor,tf.Variable特指Tensorflow中哪些可以優化的引數,比如自動求導。
tf.Variable可以理解為是專門為神經網路所設立的一個型別。
a = tf.range(5) b = tf.Variable(a) # Out[51]: <tf.Variable 'Variable:0' shape=(5,) dtype=int32, numpy=array([0, 1, 2, 3, 4])> b.dtype # Out[52]: tf.int32 b.name # Out[53]: 'Variable:0' b = tf.Variable(a, name = "input_data") b.name # Out[55]: 'input_data:0' b.trainable # Out[56]: True isinstance(b,tf.Tensor) # Out[57]: False isinstance(b,tf.Variable) # Out[58]: True tf.is_tensor(b) # Out[59]: True b.numpy() # Out[60]: array([0, 1, 2, 3, 4])
將Tensor型別轉化為python中的資料型別
a = tf.ones([]) # Out[63]: <tf.Tensor: shape=(), dtype=float32, numpy=1.0> a.numpy() # Out[64]: 1.0 int(a) # Out[65]: 1 float(a) # Out[66]: 1.0
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45