如何使用Google Colab 提供的免費GPU
文章推薦指數: 80 %
今天我將介紹該如何使用Google 免費提供的GPU —— 使用Colab 這個線上平台!Colab 的使用方法與著名的Jupyter notebook 一樣,相信有用過Jupyter ...
如何使用GoogleColab提供的免費GPU Clay2019-09-292021-04-11MachineLearning
GoogleColab的全名為GoogleColaboratory,顧名思義,是個由Google所提供的服務。
Colab最大的優點在於它提供了後台的免費GPU,雖然有著一天只能使用十二小時的時限、以及訓練太長的模型會被認為是在做加密貨幣的挖掘而被ban調——但總體而言,Colab仍然是手邊沒有GPU的人們最適合進行機器學習的平台。
Colab是一個線上Python執行平台,其底層的運作方法與著名的Jupyternotebook十分相像。
在Colab的常見問題說明裡頭,也是這樣說明的:
相信使用過Jupyternotebook的朋友肯定不陌生Colab這樣的操作模式。
那麼,以下我就使用我曾寫過的《使用CNN進行MNIST的手寫數字辨識——byKeras(實戰篇)》來進行該如何使用Colab的說明吧!
擁有Google帳號
要使用Colab最重要的事情,便是擁有一個Google帳號!現代的人們大多已經有了,因為Google提供了太多服務、實在是太方便了。
如果你還沒有Google帳號,那麼我極力推薦你註冊一個。
使用GPU
搜尋GoogleColab,大概在你搜尋結果的第一項,就是Colab的網址。
點開後,大概會顯示下面這樣的畫面。
Good!這代表你順利地來到Colab了!
點擊File->NewPython3notebook創建一個新的筆記本,並在裡頭貼上Python程式碼:
#-*-coding:utf-8-*-
importos
fromkeras.modelsimportSequential,load_model
fromkeras.layersimportDense,Dropout,Flatten,Conv2D,MaxPool2D
fromkeras.utilsimportnp_utils,plot_model
fromkeras.datasetsimportmnist
importmatplotlib.pyplotasplt
importpandasaspd
#MnistDataset
(X_train,Y_train),(X_test,Y_test)=mnist.load_data()
x_train=X_train.reshape(60000,1,28,28)/255
x_test=X_test.reshape(10000,1,28,28)/255
y_train=np_utils.to_categorical(Y_train)
y_test=np_utils.to_categorical(Y_test)
#ModelStructure
model=Sequential()
model.add(Conv2D(filters=32,kernel_size=3,input_shape=(1,28,28),activation='relu',padding='same'))
model.add(MaxPool2D(pool_size=2,data_format='channels_first'))
model.add(Flatten())
model.add(Dense(256,activation='relu'))
model.add(Dense(10,activation='softmax'))
print(model.summary())
#Train
model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
model.fit(x_train,y_train,epochs=10,batch_size=64,verbose=1)
#Test
loss,accuracy=model.evaluate(x_test,y_test)
print('Test:')
print('Loss:%s\nAccuracy:%s'%(loss,accuracy))
#Savemodel
model.save('./CNN_Mnist.h5')
#LoadModel
model=load_model('./CNN_Mnist.h5')
#Display
defplot_img(n):
plt.imshow(X_test[n],cmap='gray')
plt.show()
defall_img_predict(model):
print(model.summary())
loss,accuracy=model.evaluate(x_test,y_test)
print('Loss:',loss)
print('Accuracy:',accuracy)
predict=model.predict_classes(x_test)
print(pd.crosstab(Y_test.reshape(-1),predict,rownames=['Label'],colnames=['predict']))
defone_img_predict(model,n):
predict=model.predict_classes(x_test)
print('Prediction:',predict[n])
print('Answer:',Y_test[n])
plot_img(n)
if__name__=='__main__':
all_img_predict(model)
#-*-coding:utf-8-*-
importos
fromkeras.modelsimportSequential,load_model
fromkeras.layersimportDense,Dropout,Flatten,Conv2D,MaxPool2D
fromkeras.utilsimportnp_utils,plot_model
fromkeras.datasetsimportmnist
importmatplotlib.pyplotasplt
importpandasaspd
#MnistDataset
(X_train,Y_train),(X_test,Y_test)=mnist.load_data()
x_train=X_train.reshape(60000,1,28,28)/255
x_test=X_test.reshape(10000,1,28,28)/255
y_train=np_utils.to_categorical(Y_train)
y_test=np_utils.to_categorical(Y_test)
#ModelStructure
model=Sequential()
model.add(Conv2D(filters=32,kernel_size=3,input_shape=(1,28,28),activation='relu',padding='same'))
model.add(MaxPool2D(pool_size=2,data_format='channels_first'))
model.add(Flatten())
model.add(Dense(256,activation='relu'))
model.add(Dense(10,activation='softmax'))
print(model.summary())
#Train
model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
model.fit(x_train,y_train,epochs=10,batch_size=64,verbose=1)
#Test
loss,accuracy=model.evaluate(x_test,y_test)
print('Test:')
print('Loss:%s\nAccuracy:%s'%(loss,accuracy))
#Savemodel
model.save('./CNN_Mnist.h5')
#LoadModel
model=load_model('./CNN_Mnist.h5')
#Display
defplot_img(n):
plt.imshow(X_test[n],cmap='gray')
plt.show()
defall_img_predict(model):
print(model.summary())
loss,accuracy=model.evaluate(x_test,y_test)
print('Loss:',loss)
print('Accuracy:',accuracy)
predict=model.predict_classes(x_test)
print(pd.crosstab(Y_test.reshape(-1),predict,rownames=['Label'],colnames=['predict']))
defone_img_predict(model,n):
predict=model.predict_classes(x_test)
print('Prediction:',predict[n])
print('Answer:',Y_test[n])
plot_img(n)
if__name__=='__main__':
all_img_predict(model)
COPY
不過先別執行,我們最好將我們的後端調整為有GPU的類型。
這也是Colab最吸引人的地方。
點擊Runtime->ChangeRuntimeType->將Hardwareaccelerator選擇為GPU。
Save存檔後,你應該就會連接上有GPU的後端。
按下ctrl+Enter就會開始執行程式碼。
有GPU的加持,Mnist應該會跑得非常非常地快。
你可以任意地替換你的任務,盡情地使用這免費的GPU吧!
分享此文:分享到Twitter(在新視窗中開啟)按一下以分享至Facebook(在新視窗中開啟)分享到LinkedIn(在新視窗中開啟)分享到Reddit(在新視窗中開啟)
相關
Tags:MachineLearning
LeaveaReply 取消回覆
Language
中文(台灣)
English
Search
Searchfor...
CategoriesCategories
選取分類
AndroidStudio (6)
Apple (39)
AppleScript (6)
iPad (3)
MacOS (36)
C/C++ (120)
C (10)
C++ (111)
C# (1)
Computer (4)
CSS (3)
Dart (3)
Database (9)
MySQL (6)
SQLite (2)
Excel (1)
Flutter (44)
IntellijIDEA (2)
Game (21)
NS (6)
PS4 (13)
PS5 (2)
Git (10)
Github (9)
GoogleSheets (3)
HTML (10)
Java (2)
JavaScript (9)
Kotlin (3)
LeetCdoe (94)
Linux (134)
MachineLearning (83)
Keras (7)
PyTorch (53)
Scikit-Learn (7)
Tensorflow (3)
Movie (1)
News (4)
NLP (27)
Novel (9)
Others (6)
PHP (14)
Python (361)
Flask (4)
Others (4)
Packages (55)
PyCharm (11)
Pygame (5)
PyQt5 (35)
PySide6 (4)
PythonTutorial (17)
Ruby (1)
Tools (16)
Unity (26)
VisualStudio (2)
VisualStudioCode (2)
Windows (12)
Word (5)
WordPress (59)
圍棋 (3)
未分類 (6)
漫畫 (2)
資料結構 (4)
隨筆 (2)
Archives Archives
選取月份
2022年4月 (15)
2022年3月 (29)
2022年2月 (17)
2022年1月 (28)
2021年12月 (21)
2021年11月 (14)
2021年10月 (20)
2021年9月 (11)
2021年8月 (20)
2021年7月 (24)
2021年6月 (24)
2021年5月 (32)
2021年4月 (26)
2021年3月 (31)
2021年2月 (14)
2021年1月 (18)
2020年12月 (17)
2020年11月 (25)
2020年10月 (24)
2020年9月 (21)
2020年8月 (17)
2020年7月 (21)
2020年6月 (19)
2020年5月 (28)
2020年4月 (31)
2020年3月 (24)
2020年2月 (25)
2020年1月 (32)
2019年12月 (39)
2019年11月 (53)
2019年10月 (34)
2019年9月 (15)
2019年8月 (18)
2019年7月 (15)
系列文章
隨筆散記
機器學習筆記
Python筆記
TAGSAndroidStudio(6)
Apple(29)
AppleScript(6)
C#(1)
C++(111)
Comic(2)
CSS(3)
C語言(10)
Dart(3)
Database(9)
Docker(2)
Excel(1)
Flask(4)
Flutter(43)
Game(18)
Git(6)
Github(9)
GoogleSheets(3)
HTML(10)
IntellijIDEA(2)
iPad(3)
Java(2)
JavaScript(10)
Keras(7)
Kotlin(3)
LeetCode(94)
Linux(133)
MachineLearning(79)
MacOS(36)
Microsoft(6)
Movie(1)
MySQL(6)
News(4)
NLP(28)
Novel(9)
NS(6)
Others(8)
PHP(14)
PS4(13)
PS5(2)
PyCharm(11)
PyQt5(34)
PySide6(3)
Python(350)
PythonPackages(53)
PythonTutorial(14)
PyTorch(53)
Qt(1)
Ruby(1)
RuneFactory4(2)
Scikit-Learn(7)
SQLite(2)
Tensorflow(3)
Tools(16)
Unity(25)
VIM(7)
VisualStudio(2)
VisualStudioCode(2)
Windows(9)
Word(5)
WordPress(58)
圍棋(3)
資料結構(4)
軌跡(4)
隨筆(1)
電腦(4)
RecentPosts
LeetCode:230-KthSmallestElementinaBST解題紀錄
[Python]函式使用可變物件當作參數預設值存在的問題
LeetCode:897-IncreasingOrderSearchTree解題紀錄
[MachineLearning]持續在KaggleNotebook上訓練模型(關閉session也在遠端訓練)
[已解決]RuntimeError:CUDAerror:devicekernelimageisinvalid-CUDAkernelerrorsmightbeasynchronouslyreportedatsomeotherAPIcall...
Calender
2019年9月
一
二
三
四
五
六
日
1
2345678
9101112131415
16171819202122
23242526272829
30
«8月
10月»
SubscriptionName*Email*
SocialMedia
Follow@clayatlas2022
ClicktoCopy
延伸文章資訊
- 1Google Colab
Colab Pro and Pro+ provide priority access to faster GPUs, longer running notebooks and more memo...
- 2Day 10 : 左手只是輔助- 用Google Colab 協助開發日常
Colab 是以雲端網頁呈現的Python 筆記本形式,類似Jupyter Notebook,但開啟時其實是幫你開啟一個Linux 虛擬機,加上可以調用免費GPU 算力,可以輕鬆達到跨平台使用的...
- 3用Google Colab 免費GPU 訓練AI 模型教學
今天來教學一下如何用免費的Google Colab GPU,透過Keras 內建的VGG Model 來串接訓練自己的模型網路。Google Colab 中提供了免費的GPU/TPU 提供給想 ...
- 4Google Colab - Using Free GPU - Tutorialspoint
Google Colab - Using Free GPU · Enabling GPU. To enable GPU in your notebook, select the followin...
- 5如何使用Google Colab 提供的免費GPU
今天我將介紹該如何使用Google 免費提供的GPU —— 使用Colab 這個線上平台!Colab 的使用方法與著名的Jupyter notebook 一樣,相信有用過Jupyter ...