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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Paddle平台中搭建CNN模型,在训练模型中采用tensor类型

發布時間:2023/12/31 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Paddle平台中搭建CNN模型,在训练模型中采用tensor类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在構建好CNN網絡模型之后,接下來便是通過訓練集來對模型進行訓練:

下面是這次搭建“”美食分類”深度學習代碼中,所用到的訓練部分的代碼:

# CNN網絡組建完畢之后,開始進行模型訓練print(train_parameters['class_dim']) print(train_parameters['label_dict'])model = CNN() optimizer = paddle.optimizer.Adam(learning_rate = train_parameters['learning_strategy']['lr'],parameters = model.parameters())for epoch_num in range (train_parameters['num_epochs']):for batch_id, data in enumerate(train_reader()):x_data = np.array([item[0] for item in data], dtype='float32').reshape(-1, 3, 64, 64)x_data = paddle.to_tensor(x_data, dtype = 'float32', place=paddle.CUDAPinnedPlace()) # 將numpy.array數據轉換成tensor張量y_data = np.array([item[1] for item in data], dtype='int64').reshape(-1, 1) # 將元組轉換成numpy.arrayy_data = paddle.to_tensor(y_data, dtype = 'int64', place=paddle.CUDAPinnedPlace())#print("y的數據類型: ", type(y_data))#print("x_data的數據類型:", type(x_data))predicts = model(x_data)#print("預測值的數據類型: ", type(predicts), "\n", "predicts內容: ", predicts)loss = fun.cross_entropy(predicts, y_data)acc = paddle.metric.accuracy(predicts, y_data)loss.backward()if batch_id % 1 == 0:print("epoch: {}, batch_id: {}, loss is: {}, acc is: {}".format(epoch_num, batch_id, loss.numpy(), acc.numpy()))optimizer.step()optimizer.clear_grad()

通過前面設計的數據讀取器,train_reader來讀取訓練集中的數據,然后可知data[0]是數據,data[1]是訓練圖片所對應的標簽,但是在讀取出來的數據是元組類型,而對于paddle中對paddle.nn.Conv2D以及池化層的描述,輸入的數據應該是tensor,張量,因此在后續將元組轉換成numpy.array之后,采用paddle.to_tensor將numpy.array轉換成張量,對于paddle.to_tensor內部的參量,place=paddle.CUDAPinnedPlace()代表將轉換后的存放于GPU設備,我理解就是采用GPU環境進行訓練。

這樣網絡輸出的預測值presicts的類型也為tensor張量,閱讀paddle關于計算準確率以及損失函數的API文檔,是要求輸入的參數數據類型一致:

loss = fun.cross_entropy(predicts, y_data) acc = paddle.metric.accuracy(predicts, y_data)

也就是predicts 以及 y_data的數據類型一致,因此我們需要同樣將訓練集圖片讀取的標簽轉換為tensor類型。

總結

以上是生活随笔為你收集整理的Paddle平台中搭建CNN模型,在训练模型中采用tensor类型的全部內容,希望文章能夠幫你解決所遇到的問題。

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