創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產品對外擴展宣傳的重要窗口,一個合格的網站不僅僅能為公司帶來巨大的互聯(lián)網上的收集和信息發(fā)布平臺,成都創(chuàng)新互聯(lián)公司面向各種領域:成都陽光房等成都網站設計、全網營銷推廣解決方案、網站設計等建站排名服務。這篇文章主要介紹keras提供了三種定義模型方式分別是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
前言
一、keras提供了三種定義模型的方式
1. 序列式(Sequential) API
序貫(sequential)API允許你為大多數(shù)問題逐層堆疊創(chuàng)建模型。雖然說對很多的應用來說,這樣的一個手法很簡單也解決了很多深度學習網絡結構的構建,但是它也有限制-它不允許你創(chuàng)建模型有共享層或有多個輸入或輸出的網絡。
2. 函數(shù)式(Functional) API
Keras函數(shù)式(functional)API為構建網絡模型提供了更為靈活的方式。
它允許你定義多個輸入或輸出模型以及共享圖層的模型。除此之外,它允許你定義動態(tài)(ad-hoc)的非周期性(acyclic)網絡圖。
模型是通過創(chuàng)建層的實例(layer instances)并將它們直接相互連接成對來定義的,然后定義一個模型(model)來指定那些層是要作為這個模型的輸入和輸出。
3.子類(Subclassing) API
補充知識:keras pytorch 構建模型對比
使用CIFAR10數(shù)據(jù)集,用三種框架構建Residual_Network作為例子,比較框架間的異同。
數(shù)據(jù)集格式
pytorch的數(shù)據(jù)集格式
import torch import torch.nn as nn import torchvision # Download and construct CIFAR-10 dataset. train_dataset = torchvision.datasets.CIFAR10(root='../../data/', train=True, download=True) # Fetch one data pair (read data from disk). image, label = train_dataset[0] print (image.size()) # torch.Size([3, 32, 32]) print (label) # 6 print (train_dataset.data.shape) # (50000, 32, 32, 3) # type(train_dataset.targets)==list print (len(train_dataset.targets)) # 50000 # Data loader (this provides queues and threads in a very simple way). train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=64, shuffle=True) """ # 演示DataLoader返回的數(shù)據(jù)結構 # When iteration starts, queue and thread start to load data from files. data_iter = iter(train_loader) # Mini-batch images and labels. images, labels = data_iter.next() print(images.shape) # torch.Size([100, 3, 32, 32]) print(labels.shape) # torch.Size([100]) 可見經過DataLoader后,labels由list變成了pytorch內置的tensor格式 """ # 一般使用的話是下面這種 # Actual usage of the data loader is as below. for images, labels in train_loader: # Training code should be written here. pass