日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

keras 自定义层input_从4个方面介绍Keras和Pytorch,并给你选择其中一个学习库的理由...

發布時間:2023/12/4 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 keras 自定义层input_从4个方面介绍Keras和Pytorch,并给你选择其中一个学习库的理由... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
全文共3376字,預計學習時長7分鐘

對許多科學家、工程師和開發人員而言,TensorFlow是他們的第一個深度學習框架。

TensorFlow 1.0于2017年2月發布;但客觀來說,它對用戶不是非常友好。

過去幾年里,由于Keras和PyTorch比TensorFlow更容易使用,這兩個主要的深度學習庫已得到較廣的普及。

本文將從四個方面來介紹Keras和Pytorch,以及選擇其中一個學習庫的理由。

Keras

Keras自身并不是框架,它其實是一個位于其他高級學習框架之上的高級API。目前,它支持TensorFlow, Theano和CNTK。

Keras的吸引力在于使用簡單。它是目前為止啟動和運行最快且最簡單的框架。神經網絡的定義是直觀的,使用功能API則允許人們將函數定義為層次。

Pytorch

Pytorch是由Facebook AI 研究組開發的深度學習框架(如Tensorflow)。像Keras一樣,它也提煉了深度網絡編程的大多混亂部分。

就編碼風格的高級和低級而言,Pytorch介于Keras和TensorFlow之間。使用時,你有比Keras更多的靈活性和控制力,同時還無需冗長的聲明式編程。

應該使用哪一個編程框架,是深度學習練習者一直在爭論的問題。一般來說,這取決于個人偏好。但在做選擇時,需要記住Keras和Pytorch的這幾個方面的知識。

用于定義模型的類與函數

為了定義深度學習模型,Keras設置了功能API。在功能API的范疇里,神經網絡被定義為一組順序函數,需要接連使用。比如說,函數定義層1的輸出是函數定義層2的輸入。

img_input = layers.Input(shape=input_shape)x = layers.Conv2D(64, (3, 3), activation='relu')(img_input)x = layers.Conv2D(64, (3, 3), activation='relu')(x)x = layers.MaxPooling2D((2, 2), strides=(2, 2))(x)

而Pytorch將網絡設置為一個類,該類拓展了Torch庫中的torch.nn模塊。與Keras類似,Pytorch使用的層為構建塊,但由于它們在Pytorch的類中,因此它們屬于‘__init__()’類下的一種字符,并由‘forward()’類執行。

class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(3, 64, 3) self.conv2 = nn.Conv2d(64, 64, 3) self.pool = nn.MaxPool2d(2, 2) def forward(self, x): x = F.relu(self.conv1(x)) x = self.pool(F.relu(self.conv2(x))) return xmodel = Net()

因為Pytorch允許訪問Python的所有的類功能而不是簡單的函數調用,所以定義網絡可以更清晰,包容量更多。這真沒有什么不好的,除非你認為,盡可能快地編寫網絡代碼對你來說是最重要的,那么Keras使用起來會更方便。

張量和計算圖對比標準數列

對于隨意的程序員來說,Keras API隱藏了許多混亂的細節。定義網絡層十分直觀,通常默認設置就足夠入門。

只有你處理到前沿的、或是奇特的模型時,才需要開始著手處理低級、細節的TensorFlow。

然而麻煩的是,當你處理到更低級別的TensorFlow時,隨之而來的是所有具有挑戰性的部分。必須保證排好所有的矩陣乘法。你甚至不用嘗試打印任何一個圖層輸出,因為你將在終端得到一個漂亮的Tensor定義。

Pytorch對這些方面的要求往往更加寬松。你必須知道每個層輸入和輸出的大小,但這是一個可以快速掌握的簡單技能。不必構建一個無法在調試中直觀看到的抽象計算圖。

Pytorch的另一個優點是可以在Torch Tensors和Numpy陣列之間來回切換。如果你要做一些自定義的東西,那么在TF張量和Numpy陣列之間來回切換可能會很麻煩。此時,開發人員需要對TensorFlow會話有充分的了解。

Pytorch的交互操作實際上更簡單。你只要知道兩個操作:一個是將Torch Tensor(一個變量對象)切換為Numpy,另一個就是切換到相反方向。

當然,如果你不需要執行任何花哨的東西,那么Keras就已經足夠好了,因為不會遇到任何TensorFlow的阻礙。但如果你需要執行復雜的編程,那么使用Pytorch可能會更順暢。

訓練模型

在Keras中訓練模型非常簡單!僅需一個的‘.fit()’,你就可以甩開步子,享受這場“編程之行”。

history = model.fit_generator( generator=train_generator, epochs=10, validation_data=validation_generator)

在Pytorch中訓練模型包括幾個步驟:

1. 每批訓練開始時初始化梯度

2. 運行前進模式

3. 運行后退模式

4. 計算損失并更新權重

for epoch in range(2): # loop over the dataset multiple times running_loss = 0.0 for i, data in enumerate(trainloader, 0): # Get the inputs; data is a list of [inputs, labels] inputs, labels = data # (1) Initialise gradients optimizer.zero_grad() # (2) Forward pass outputs = net(inputs) loss = criterion(outputs, labels) # (3) Backward loss.backward() # (4) Compute the loss and update the weights optimizer.step()

這些都不過是運行訓練的常見步驟!

如此一來,你總能意識到發生了什么。同時,由于這些模型訓練步驟在訓練不同模型時基本保持不變,因此它們顯得十分不必要。

控制CPU與GPU模式

如果安裝了tensorflow-gpu,你可以選擇用Keras的默認設置啟動并使用GPU。然后,如果你想把某些操作移動到CPU里,可以執行以下單行操作:

with tf.device('/cpu:0'): y = apply_non_max_suppression(x)

至于Pytorch,你必須為每個torch張量和Numpy變量明確指定運行GPU。如果在CPU和GPU之間來回切換來進行不同的操作,這會使代碼變得混亂,且有可能容易出錯。

例如,要把以前的模型轉移到GPU上運行,我們必須執行以下操作:

# Get the GPU devicedevice = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # Transfer the network to GPUnet.to(device) # Transfer the inputs and labels to GPUinputs, labels = data[0].to(device), data[1].to(device)

Keras贏在它的簡潔和良好的默認設置。

選擇框架的一般建議

通常我們建議從Keras入門。

Keras無疑是最容易使用,理解且快速啟動和運行的框架。你不用擔心它的GPU設置,不需要擺弄抽象代碼,總之,你不必做任何復雜的事情。你甚至可以在不觸及任何一行TensorFlow 的情況下,執行自定義圖層和損失函數的操作。

如果你開始深入了解深層網絡的更精細的方面,或者正在執行一些非標準化的東西,那么Pytorch就是首選深度學習庫。用Keras的話,就會多一些額外的工作,但不會太多,只不過這會使你的工作效率降低。可是,你依舊可以快速執行,訓練和檢測網絡,而且還能輕松調試!

留言 點贊 關注

我們一起分享AI學習與發展的干貨

歡迎關注全平臺AI垂類自媒體 “讀芯術”

總結

以上是生活随笔為你收集整理的keras 自定义层input_从4个方面介绍Keras和Pytorch,并给你选择其中一个学习库的理由...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中午字幕在线观看 | 国产精品一品二区三区的使用体验 | 国产xxxxx| 天堂在线成人 | 97毛片 | 亚洲不卡中文字幕 | 一个色av| 真实乱偷全部视频 | 欧美第一视频 | av老司机久久 | 成人性生生活性生交3 | 天天舔天天舔 | 蜜桃视频无码区在线观看 | 天天干天天操天天玩 | 国内av网| 日韩人妻精品一区二区 | 精品久久国产视频 | 日韩亚洲欧美中文字幕 | www色综合 | 欧美一级黄色片在线观看 | 在线观看污污网站 | 日日影院 | 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 免费国产精品视频 | 在线精品视频播放 | 精品国产影院 | 欧美日韩免费一区 | 国产电影免费观看高清完整版视频 | 国内久久| 成人做爰69片免费看 | 精精国产xxxx视频在线播放 | 777视频在线观看 | 成人综合影院 | 中文字幕一区二区三区四区欧美 | 亚洲一区国产精品 | av在线一 | 国产精品成人av性教育 | 中文字幕精品三区 | caoporn视频在线观看 | a网站在线 | 911精品国产一区二区在线 | 久久九九久久九九 | 国产免费一级片 | 毛片国产精品 | 91老师国产黑色丝袜在线 | 女人高潮娇喘1分47秒 | 麻豆免费视频 | 久久亚洲精品中文字幕 | 国产免费一区二区三区在线播放 | 成人资源站 | 波多野结衣视频网址 | 国产aⅴ一区二区三区 | 成人一级免费视频 | 男女涩涩 | 天天干天天摸天天操 | 日韩大片在线免费观看 | 黄色av网站在线播放 | 人妻洗澡被强公日日澡 | 伊人久久中文字幕 | 欧美一级艳片视频免费观看 | 高跟鞋和丝袜猛烈xxxxxx | 国产精品伦一区二区三级古装电影 | 人人插人人草 | 亚洲dvd | 欧美成人tv| 91九色视频在线观看 | 日本xx片 | 97超碰国产在线 | 国产a久久麻豆入口 | 黄色香港三级三级三级 | 国产一区二区三区视频免费在线观看 | 波多野结衣av无码 | 欧美乱妇15p| 黄色性视频网站 | xxxx视频在线观看 | 最近免费中文字幕大全免费版视频 | 人与嘼交av免费 | 色国产精品| 国产精品成人免费精品自在线观看 | 欧美国产精品久久 | 国产成人av电影 | 日韩视频 中文字幕 | 国产精品无码一区二区无人区多人 | 日韩不卡一二三 | 青娱乐最新地址 | 成人av色| 中国av在线| 超碰国产在线观看 | 久久合| 一区二区免费视频 | 日韩精品视频在线播放 | 激情一区二区 | 色综合久久久久 | 天堂在线视频 | 日韩精品人妻中文字幕 | 丁香花电影免费播放在线观看 | 日韩精品一二三四 | 亚洲国产三级 | av卡一卡二|