自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

現(xiàn)在知道還不算晚,輸入示例自動(dòng)生成代碼,谷歌開(kāi)源這項(xiàng)神器要火

新聞 前端
操作張量并非易事,因?yàn)樗枰芏嘞葲Q條件,例如跟蹤多個(gè)維度,Dtype兼容性,數(shù)學(xué)正確性和張量形狀等。

 操作張量并非易事,因?yàn)樗枰芏嘞葲Q條件,例如跟蹤多個(gè)維度,Dtype兼容性,數(shù)學(xué)正確性和張量形狀等。當(dāng)然最大的挑戰(zhàn)還是從數(shù)百種可用選項(xiàng)中確定正確的TensorFlow操作。

[[344525]]

假如不需要你進(jìn)行對(duì)張量操縱進(jìn)行編碼,你只需要通過(guò)一個(gè)說(shuō)明性的例子來(lái)演示,有個(gè)工具就能生成相應(yīng)的代碼,你會(huì)選擇這個(gè)工具么?如果會(huì)的話,谷歌的TensorFlow Coder(TF-Coder)可以幫你實(shí)現(xiàn)這一點(diǎn)。

TF-Coder是一個(gè)程序合成工具,可以幫助你編寫(xiě)TensorFlow代碼,首先,這個(gè)工具需要輸入所需張量變換的輸入-輸出示例。然后,它會(huì)運(yùn)行一個(gè)組合搜索來(lái)查找執(zhí)行轉(zhuǎn)換的TensorFlow表達(dá)式。TF-Coder的輸出是真實(shí)的TensorFlow代碼,你可以直接將它用在你的項(xiàng)目中。

接著,我們?cè)賮?lái)詳細(xì)介紹一下TF-Coder是如何幫助你編寫(xiě)TensorFlow代碼。

在TensorFlow中的編程示例

假如你想將包含 M 個(gè)元素的向量(下例中指‘rows’)和包含 N 個(gè)元素的向量“想加”,生成一個(gè)包含所有成對(duì)和的 M x N 矩陣。你可以提供一個(gè)輸入輸出示例(如M=3和N=4),而不需要深入研究TensorFlow文檔來(lái)找出如何做到這一點(diǎn)。

輸入張量:

  1. inputs = { 
  2.  
  3. 'rows': [102030], 
  4.  
  5. 'cols': [1234], 
  6.  

所提供的輸入張量對(duì)應(yīng)的期望輸出張量:

  1. output = [[11121314], 
  2.  
  3. [21222324], 
  4.  
  5. [31323334]] 

給定這些信息(默認(rèn)情況下已經(jīng)輸入到TF-Coder Colab中),TF-Coder工具會(huì)在零點(diǎn)幾秒內(nèi)自動(dòng)找到合適的TensorFlow代碼:

  1. tf.add(cols, tf.expand_dims(rows, 1)) 

上面的問(wèn)題非常簡(jiǎn)單,只是通過(guò)示例來(lái)說(shuō)明編程的思想。TF-Coder對(duì)于更難的問(wèn)題也很有用。

TF-Coder幫助你找到要使用的正確函數(shù)

假設(shè)我們正在處理一個(gè)數(shù)學(xué)問(wèn)題,比如商品的價(jià)格,數(shù)據(jù)集中范圍很廣,從$10以下到$1000以上。如果這些價(jià)格被直接用作特征,那么你的模型可能會(huì)對(duì)訓(xùn)練數(shù)據(jù)中的特定價(jià)格過(guò)度擬合。

假如要處理這些問(wèn)題,你可能需要使用bucketing將數(shù)字價(jià)格轉(zhuǎn)換成類別特征。使用bucket邊界 [10, 50, 100, 1000] 意味著低于10美元的價(jià)格應(yīng)歸入bucket 0,10美元至50美元的價(jià)格應(yīng)歸入bucket 1,依此類推。

選擇bucket邊界之后,如何使用TensorFlow將實(shí)際價(jià)格映射到bucket索引?諸如給定以下bucket邊界和物品價(jià)格:

  1. # Input tensors 
  2.  
  3. boundaries = [10501001000
  4.  
  5. prices = [15350901001001

計(jì)算每個(gè)項(xiàng)的bucket編號(hào):

  1. # Output tensor 
  2.  
  3. bucketed_prices = [102234

盡管TensorFlow提供了各種bucketing操作,但要找出哪個(gè)特定的操作執(zhí)行這種確切的bucketing可能比較棘手。由于TF-Coder可以通過(guò)行為識(shí)別數(shù)百個(gè)張量操作,你可以通過(guò)提供一個(gè)輸入-輸出示例來(lái)查找正確的操作:

  1. # Input-output example 
  2.  
  3. inputs = { 
  4.  
  5. 'boundaries': [10501001000], 
  6.  
  7. 'prices': [15350901001001], 
  8.  
  9.  
  10. output = [102234

很快,TF-Coder就會(huì)輸出如下解決方案:

  1. tf.searchsorted(boundaries, prices, side='right'

TF-Coder通過(guò)聰明的方式結(jié)合函數(shù)

現(xiàn)在我們來(lái)考慮另一個(gè)問(wèn)題:計(jì)算一個(gè)0-1的張量,它能識(shí)別輸入張量每一行中的最大元素。

  1. # Input tensor 
  2.  
  3. scores = [[0.70.20.1], 
  4.  
  5. [0.40.50.1], 
  6.  
  7. [0.40.40.2], 
  8.  
  9. [0.30.40.3], 
  10.  
  11. [0.00.01.0]] 
  12.  
  13. # Output tensor 
  14.  
  15. top_scores = [[100], 
  16.  
  17. [010], 
  18.  
  19. [100], 
  20.  
  21. [010], 
  22.  
  23. [001]] 

注意,如果同一最大元素在一行中出現(xiàn)多次,比如在第三行scores中,那么應(yīng)該只標(biāo)記第一個(gè)最大元素,以便top_scores的每行只有一個(gè)結(jié)果。

和上個(gè)問(wèn)題不同的是,這里不存在可執(zhí)行該計(jì)算的 TensorFlow 函數(shù)。在文檔中搜索「max」,你可能找到 tf.reduce_max、tf.argmax 和 tf.maximum,但也不清楚到底該用哪一個(gè)?tf.reduce_max 輸出 [0.7, 0.5, 0.4, 0.4, 1.0],tf.argmax 輸出 [0, 1, 0, 1, 2],tf.maximum 不合適,因?yàn)樗荒苋菁{兩個(gè)參數(shù)。這些函數(shù)似乎都與該示例的期望輸出關(guān)聯(lián)不大。

對(duì)于此類問(wèn)題,TF-Coder也可以快速解決。你可以把這個(gè)問(wèn)題寫(xiě)成輸入輸出例子的形式

  1. # Input-output example 
  2.  
  3. inputs = { 
  4.  
  5. 'scores': [[0.70.20.1], 
  6.  
  7. [0.40.50.1], 
  8.  
  9. [0.40.40.2], 
  10.  
  11. [0.30.40.3], 
  12.  
  13. [0.00.01.0]], 
  14.  
  15.  
  16. output = [[100], 
  17.  
  18. [010], 
  19.  
  20. [100], 
  21.  
  22. [010], 
  23.  
  24. [001]] 

TF-Coder結(jié)合使用tf.one_hot和tf.argmax,得出一個(gè)解決方案:

  1. tf.cast(tf.one_hot(tf.argmax(scores, axis=1), 3), tf.int32) 

通過(guò)對(duì)TensorFlow操作組合的詳細(xì)搜索,TF-Coder經(jīng)常會(huì)找到類似這樣的優(yōu)雅解決方案,這可能會(huì)簡(jiǎn)化并加速TensorFlow程序的開(kāi)發(fā)。

關(guān)于TF-Coder的用法還有很多,這里就不一一列舉了,相信你已經(jīng)見(jiàn)識(shí)到他的強(qiáng)大了,最后附上TF-Coder相關(guān)地址:

Github地址:https://github.com/google-research/tensorflow-coder

Google Colab 試用地址:https://colab.research.google.com/github/google-research/tensorflow-coder/blob/master/TF-Coder_Colab.ipynb

 

責(zé)任編輯:張燕妮 來(lái)源: 開(kāi)源最前線
相關(guān)推薦

2011-09-06 17:05:16

移動(dòng)廣告

2020-08-28 15:28:29

代碼開(kāi)發(fā)工具

2018-05-29 10:16:40

超融合IT廠商產(chǎn)品

2022-03-25 14:24:18

谷歌自然語(yǔ)言算法

2020-05-29 15:36:38

開(kāi)源神器 工具

2021-03-24 10:48:32

谷歌開(kāi)源代碼

2012-08-20 08:58:40

2020-05-15 08:18:51

TFPyTorch深度學(xué)習(xí)

2019-07-16 08:09:32

開(kāi)源技術(shù) 趨勢(shì)

2020-12-31 11:55:56

PythonPlaywright微軟

2024-02-05 12:45:33

AI訓(xùn)練

2018-09-02 15:43:56

Python代碼編程語(yǔ)言

2024-02-23 09:02:21

前端開(kāi)源項(xiàng)目

2017-11-09 19:15:25

2017-06-09 14:45:14

前端深度學(xué)習(xí)

2010-01-18 09:43:53

李開(kāi)復(fù)谷歌

2015-08-11 09:51:06

谷歌重組Alphabet

2018-09-03 16:05:03

編程語(yǔ)言Python代碼技巧

2020-05-25 20:46:59

Python編程語(yǔ)言程序員

2021-09-14 10:11:46

谷歌3D舞蹈生成模型FACT
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)