真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

tensorflow的Eagerexecution怎么創(chuàng)建

這篇文章主要介紹“tensorflow的Eager execution怎么創(chuàng)建”,在日常操作中,相信很多人在tensorflow的Eager execution怎么創(chuàng)建問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”tensorflow的Eager execution怎么創(chuàng)建”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)專(zhuān)業(yè)為企業(yè)提供麻章網(wǎng)站建設(shè)、麻章做網(wǎng)站、麻章網(wǎng)站設(shè)計(jì)、麻章網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、麻章企業(yè)網(wǎng)站模板建站服務(wù),十余年麻章做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

一、開(kāi)始學(xué)習(xí) TensorFlow 最簡(jiǎn)單的方法是使用 Eager Execution,官方提供的教程為Colab notebook,打不開(kāi)需要梯子,參考其他的吧,比如這個(gè):tensorflow之Eager execution基礎(chǔ)

從tensorflow之Eager execution基礎(chǔ)中,我了解到:

啥是Eager Execution?

「Eager Execution」,它是一個(gè)命令式、由運(yùn)行定義的接口,一旦從 Python 被調(diào)用,其操作立即被執(zhí)行。

這使得入門(mén) TensorFlow 變的更簡(jiǎn)單,也使研發(fā)更直觀。

Eager Execution 有啥優(yōu)點(diǎn)?

1、快速調(diào)試即刻的運(yùn)行錯(cuò)誤并通過(guò) Python 工具進(jìn)行整合

2、借助易于使用的 Python 控制流支持動(dòng)態(tài)模型

3、為自定義和高階梯度提供強(qiáng)大支持

4、適用于幾乎所有可用的 TensorFlow 運(yùn)算

啥是張量?

張量是一個(gè)多維數(shù)組。與NumPy ndarray對(duì)象類(lèi)似,Tensor對(duì)象具有數(shù)據(jù)類(lèi)型和形狀。

此外,Tensors可以駐留在加速器(如GPU)內(nèi)存中。

TensorFlow提供了豐富的操作庫(kù)(tf.add,tf.matmul,tf.linalg.inv等),

它們使用和生成Tensors。這些操作自動(dòng)轉(zhuǎn)換本機(jī)Python類(lèi)型。

張量的基本創(chuàng)建與使用

# -*- coding: utf-8 -*-

"""

@File : 191206_test_Eager_execution.py

@Time : 2019/12/6 11:11

@Author : Dontla

@Email : sxana@qq.com

@Software: PyCharm

"""

# 導(dǎo)入tensorflow

import tensorflow as tf

tf.enable_eager_execution()

# 創(chuàng)建和使用張量

print(tf.add(1,2)) # tf.Tensor(3, shape=(), dtype=int32)

print(tf.add([1, 2], [3, 4])) # tf.Tensor([4 6], shape=(2,), dtype=int32)

print(tf.square(5)) # tf.Tensor(25, shape=(), dtype=int32)

print(tf.reduce_sum([1, 2, 3])) # tf.Tensor(6, shape=(), dtype=int32)

print(tf.encode_base64("hello world")) # tf.Tensor(b'aGVsbG8gd29ybGQ', shape=(), dtype=string)

print(tf.square(2) + tf.square(3)) # tf.Tensor(13, shape=(), dtype=int32)

x = tf.matmul([[1]], [[2, 3]])

print(x) # tf.Tensor([[2 3]], shape=(1, 2), dtype=int32)

print(x.shape) # (1, 2)

print(x.dtype) #

張量的屬性

每個(gè)Tensor都有一個(gè)形狀和數(shù)據(jù)類(lèi)型

x = tf.matmul([[1]], [[2, 3]])

print(x.shape)

print(x.dtype)

NumPy array和TensorFlow張量之間最明顯的區(qū)別

張量可以由加速器內(nèi)存(如GPU,TPU)支持。

張量是不可改變的。

TensorFlow張量和NumPy nararrays之間的轉(zhuǎn)換

TensorFlow操作自動(dòng)將NumPy ndarrays轉(zhuǎn)換為T(mén)ensors。

NumPy操作自動(dòng)將Tensors轉(zhuǎn)換為NumPy ndarrays。

通過(guò)在Tensors上調(diào)用.numpy()方法,可以將張量顯式轉(zhuǎn)換為NumPy ndarrays。這些轉(zhuǎn)換通常很容易,因?yàn)槿绻赡?,?shù)組和Tensor共享底層內(nèi)存表示。但是,共享底層表示并不總是可行的,因?yàn)門(mén)ensor可能托管在GPU內(nèi)存中,而NumPy陣列總是由主機(jī)內(nèi)存支持,因此轉(zhuǎn)換將涉及從GPU到主機(jī)內(nèi)存的復(fù)制。

import tensorflow as tf

import numpy as np

tf.enable_eager_execution()

ndarray = np.ones([3, 3])

print(ndarray)

# [[1. 1. 1.]

# [1. 1. 1.]

print("TensorFlow operations convert numpy arrays to Tensors automatically")

tensor = tf.multiply(ndarray, 42)

print(tensor)

# tf.Tensor(

# [[42. 42. 42.]

# [42. 42. 42.]

# [42. 42. 42.]], shape=(3, 3), dtype=float64)

print("And NumPy operations convert Tensors to numpy arrays automatically")

print(np.add(tensor, 1))

# [[43. 43. 43.]

# [43. 43. 43.]

# [43. 43. 43.]]

print("The .numpy() method explicitly converts a Tensor to a numpy array")

print(tensor.numpy())

# [[42. 42. 42.]

# [42. 42. 42.]

# [42. 42. 42.]]

二、GPU加速

通過(guò)使用GPU進(jìn)行計(jì)算,可以加速許多TensorFlow操作。在沒(méi)有任何注釋的情況下,TensorFlow會(huì)自動(dòng)決定是使用GPU還是CPU進(jìn)行操作(如有必要,還可以復(fù)制CPU和GPU內(nèi)存之間的張量)。由操作產(chǎn)生的張量通常由執(zhí)行操作的設(shè)備的存儲(chǔ)器支持。例如:

# -*- coding: utf-8 -*-

"""

@File : 191208_test_Eager_execution_once_cls.py

@Time : 2019/12/8 12:25

@Author : Dontla

@Email : sxana@qq.com

@Software: PyCharm

"""

import tensorflow as tf

tf.enable_eager_execution()

x = tf.random_uniform([3, 3])

print("Is there a GPU available: ")

print(tf.test.is_gpu_available()) # True

print("Is the Tensor on GPU #0: "),

print(x.device) # /job:localhost/replica:0/task:0/device:GPU:0

print(x.device.endswith('GPU:0')) # True

(1)設(shè)備名稱(chēng)

Tensor.device屬性提供托管Tensor內(nèi)容的設(shè)備的完全限定字符串名稱(chēng)。此名稱(chēng)對(duì)一組詳細(xì)信息進(jìn)行編碼,例如,正在執(zhí)行此程序的主機(jī)的網(wǎng)絡(luò)地址的標(biāo)識(shí)符以及該主機(jī)中的設(shè)備。這是分布式執(zhí)行TensorFlow程序所必需的,但我們暫時(shí)不會(huì)這樣做。如果張量位于主機(jī)上的第N個(gè)張量上,則字符串將以GPU:結(jié)尾。

(2)顯示設(shè)備配置

TensorFlow中的術(shù)語(yǔ)“placement"指的是如何為執(zhí)行設(shè)備分配(放置)各個(gè)操作。如上所述,當(dāng)沒(méi)有提供明確的指導(dǎo)時(shí),TensorFlow會(huì)自動(dòng)決定執(zhí)行操作的設(shè)備,并在需要時(shí)將Tensors復(fù)制到該設(shè)備。但是,可以使用tf.device上下文管理器將TensorFlow操作顯式放置在特定設(shè)備上。

到此,關(guān)于“tensorflow的Eager execution怎么創(chuàng)建”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!


名稱(chēng)欄目:tensorflow的Eagerexecution怎么創(chuàng)建
網(wǎng)站地址:http://weahome.cn/article/psiogd.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部