學(xué)習(xí)了flask框架的概念與使用,以將python的深度學(xué)習(xí)算法部署到web網(wǎng)頁中,F(xiàn)lask是一個輕量級的可定制框架,使用Python語言編寫,較其他同類型框架更為靈活、輕便、安全且容易上手。它可以很好地結(jié)合MVC模式進(jìn)行開發(fā),可以完成功能豐富的中小型網(wǎng)站或Web服務(wù)的實(shí)現(xiàn)。我使用flask框架將一些簡單的計算程序成功部署到了web頁面上。
眉山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,眉山網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為眉山上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的眉山做網(wǎng)站的公司定做!2.根據(jù)ResNet50網(wǎng)絡(luò)的結(jié)構(gòu)圖,參考開源代碼,完成了網(wǎng)絡(luò)構(gòu)建,根據(jù)已有的10位作家的作品集完成了模型的訓(xùn)練,得到了較好的識別準(zhǔn)確率。
3.對網(wǎng)站前端的實(shí)現(xiàn),如顯示界面UI等,以及部分報告的編寫。目前已經(jīng)制作好了項(xiàng)目的網(wǎng)頁,等項(xiàng)目初步完成后再做相應(yīng)的細(xì)節(jié)修改即可。
4.
在colab上運(yùn)行圖像識別算法代碼
階段成果:
運(yùn)行時報錯:CUDA out of memory
于是查看GPU內(nèi)存占用情況,首先安裝支持包
然后運(yùn)行以下代碼:
import psutil
import humanize
import os
import GPUtil as GPU
GPUs = GPU.getGPUs()
# XXX: only one GPU on Colab and isn’t guaranteed
gpu = GPUs[0]
def printm():
process = psutil.Process(os.getpid())
print("Gen RAM Free: " + humanize.naturalsize(psutil.virtual_memory().available), " | Proc size: " + humanize.naturalsize(process.memory_info().rss))
print("GPU RAM Free: {0:.0f}MB | Used: {1:.0f}MB | Util {2:3.0f}% | Total {3:.0f}MB".format(gpu.memoryFree, gpu.memoryUsed, gpu.memoryUtil*100, gpu.memoryTotal))
printm()
得到GPU占用情況,發(fā)現(xiàn)占用已滿,接著使用命令!ps -aux|grep python查看具體占用情況
使用!kill -9 pid釋放內(nèi)存,釋放完后再次查看GPU內(nèi)存占用情況
發(fā)現(xiàn)內(nèi)存很充足,將Dataloader的參數(shù)batch_size更改為2,num_workers更改為2,再次運(yùn)行,沒有出現(xiàn)CUDA out of memory錯誤
計劃的工作: 1.利用flask框架將圖像識別算法部署到web頁面上,用戶在進(jìn)行畫像上傳時,web頁面把收集到的畫像傳給后臺的圖像識別算法進(jìn)行處理,再把得到的結(jié)果返回到web頁面上。
2.實(shí)現(xiàn)對ART數(shù)據(jù)集49位畫家的畫作分類,只需調(diào)整參數(shù)即可;嘗試采用其他網(wǎng)絡(luò)模型或者檢查網(wǎng)絡(luò)模型的問題,以提高準(zhǔn)確率
遇到的困難: 1.flask框架的語法與python略有不同,在學(xué)習(xí)時需要注意正確使用,以把python語句上傳到web頁面上。
2.當(dāng)前采用的網(wǎng)絡(luò)準(zhǔn)確率在85%-90%之間,似乎并不夠高
個人收獲: 關(guān)子琦.掌握了flask框架的使用,對深度學(xué)習(xí)算法和web頁面的結(jié)合有了更深的理解,同時也加強(qiáng)了對前端和后端工作的理解,為制作一個功能齊全的網(wǎng)頁,二者缺一不可。
別鵬飛.深入了解了resnet50網(wǎng)絡(luò)模型的結(jié)構(gòu)并根據(jù)資料進(jìn)行了模型組網(wǎng),完成了網(wǎng)絡(luò)的實(shí)現(xiàn)并得到了不錯的識別準(zhǔn)確率,也了解了許多其他網(wǎng)絡(luò)模型,包括一些復(fù)雜網(wǎng)絡(luò),如densenet201。通過這次實(shí)驗(yàn),我對神經(jīng)網(wǎng)絡(luò)模型尤其是經(jīng)典的resnet50有了較好地理解。
代碼:(網(wǎng)絡(luò)模型)
#卷積層2(包括卷積,池化,激活)
layer_conv2 = create_convolutional_layer(input=layer_conv1,
num_input_channels=num_filters_conv1,
conv_filter_size=filter_size_conv2,
num_filters=num_filters_conv2)
#卷積層3(包括卷積,池化,激活)
layer_conv3= create_convolutional_layer(input=layer_conv2,
num_input_channels=num_filters_conv2,
conv_filter_size=filter_size_conv3,
num_filters=num_filters_conv3)
#把上面三個卷積層處理后的結(jié)果轉(zhuǎn)化為一維向量,提供給全連層
layer_flat = create_flatten_layer(layer_conv3)
#全連接層1
layer_fc1 = create_fc_layer(input=layer_flat,
num_inputs=layer_flat.get_shape()[1:4].num_elements(),
num_outputs=fc_layer_size,
use_relu=True)
#全連接層2
layer_fc2 = create_fc_layer(input=layer_fc1,
num_inputs=fc_layer_size,
num_outputs=num_classes,
use_relu=False)
李柏林.在本次項(xiàng)目中,雖然我參與編寫的部分不多,但是在之前的相關(guān)學(xué)習(xí)中我也了解了很多有關(guān)這個項(xiàng)目的其他很多知識。我負(fù)責(zé)的部分,雖然是整個項(xiàng)目最簡單的部分,但是做起來還是有很多問題,從一開始的平臺搭建到后面的具體代碼書寫,一路走來總是磕磕絆絆,但是還好網(wǎng)絡(luò)中有許多學(xué)習(xí)資源,對照著網(wǎng)上的教程一點(diǎn)點(diǎn)開始最后還是完成了,看著自己一點(diǎn)點(diǎn)“畫”出來的網(wǎng)頁,心中還是滿感慨的,從這節(jié)課的開始到現(xiàn)在也確確實(shí)實(shí)學(xué)到了東西,也對軟件工程這門課有了更深入的了解和感悟。
呂思毅.每運(yùn)行一次程序需要很長時間,調(diào)試起來很麻煩
燃盡圖組會照片你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧