国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Transformers實戰(zhàn)——使用Trainer類訓(xùn)練和評估自己的數(shù)據(jù)和模型

這篇具有很好參考價值的文章主要介紹了Transformers實戰(zhàn)——使用Trainer類訓(xùn)練和評估自己的數(shù)據(jù)和模型。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

有時候我們并不想使用Transformers來訓(xùn)練別人的預(yù)訓(xùn)練模型,而是想用來訓(xùn)練自己的模型,并且不想寫訓(xùn)練過程代碼。這時,我們可以按照一定的要求定義數(shù)據(jù)集和模型,就可以使用Trainer類來直接訓(xùn)練和評估模型,不需要寫那些訓(xùn)練步驟了。

使用Trainer類訓(xùn)練自己模型步驟如下,以網(wǎng)絡(luò)退化現(xiàn)象和殘差網(wǎng)絡(luò)效果中的殘差模型為例:

導(dǎo)入必要庫

import torch
from torch import nn
from datasets import Dataset
from transformers import Trainer, TrainingArguments

# 驅(qū)動選擇
device = "cuda" if torch.cuda.is_available() else "cpu"

準(zhǔn)備數(shù)據(jù)

X = torch.zeros((26, 26), dtype=torch.float32).to(device=device)
labels = []
for i in range(26):
    labels.append((i+1) % 26)
    X[i][i] = 1.
labels = torch.tensor(labels)
dataset = Dataset.from_dict({'x':X, 'labels':labels})
  • 注意

    Trainer訓(xùn)練時,會將dataset中的數(shù)據(jù)按照對應(yīng)的鍵值傳入,因此需要在自己模型的forward方法中接收鍵值變量。如上例,需要將方法寫為:forward(self, x, labels)

構(gòu)建網(wǎng)絡(luò)

# 殘差網(wǎng)絡(luò)
class RN(nn.Module):
    def __init__(self):
        super(RN, self).__init__()
        self.linear_stack = nn.Sequential(
            nn.Linear(26, 64),
            nn.Hardsigmoid(),
            nn.Linear(64, 26),
            nn.Hardsigmoid(),
        )
        
        self.linear_stack_2 = nn.Sequential(
            nn.Linear(26, 64),
            nn.Hardsigmoid(),
            nn.Linear(64, 64),
            nn.Hardsigmoid(),
        )
        
        self.output_layer = nn.Linear(64, 26)
        
        self.loss_f = nn.CrossEntropyLoss()
        
    def forward(self, x, labels, mode='train'):
        y = self.linear_stack(x)
        # 殘差
        y = y+x
        y = self.linear_stack_2(y)
        y = self.output_layer(y)
       
        if mode is 'train':
            return {
                'loss':self.loss_f(y, labels),
                'predictions':y
            }
        
        return y

網(wǎng)絡(luò)與之前完全一致,只是改了下前向傳播方法,這里的mode=’train’是為了后續(xù)自己使用模型加的,也可以不要。

創(chuàng)建Trainer類

# 生成模型實例
model = RN().to(device=device)

def compute_metrics(pred):
    labels = pred.label_ids
    preds = pred.predictions.argmax(-1)
    acc = (labels == preds).sum()/len(labels)
    return {
        'accuracy': acc,
    }

training_args = TrainingArguments(
    output_dir='./results',         # output directory 結(jié)果輸出地址
    num_train_epochs=1000,          # total # of training epochs 訓(xùn)練總批次
    per_device_train_batch_size=1,  # batch size per device during training 訓(xùn)練批大小
    per_device_eval_batch_size=1,   # batch size for evaluation 評估批大小
    logging_dir='./logs/rn_log',    # directory for storing logs 日志存儲位置
    learning_rate=1e-3,             # 學(xué)習(xí)率
    save_steps=False,               # 不保存檢查點
)

trainer = Trainer(
    model=model,                      # the instantiated ?? Transformers model to be trained 需要訓(xùn)練的模型
    args=training_args,               # training arguments, defined above 訓(xùn)練參數(shù)
    train_dataset=dataset,            # training dataset 訓(xùn)練集
    eval_dataset=dataset,             # evaluation dataset 測試集
    compute_metrics=compute_metrics   # 計算指標(biāo)方法
)

trainer.train()
trainer.evaluate()

訓(xùn)練過程:

transformers trainer,# Transformers,深度學(xué)習(xí),機器翻譯,人工智能,Transformers

評估結(jié)果:

transformers trainer,# Transformers,深度學(xué)習(xí),機器翻譯,人工智能,Transformers

保存模型

trainer.save_model()

加載并使用模型

checkpoint = torch.load('./results/pytorch_model.bin')
model = RN().to(device)
model.load_state_dict(checkpoint)
model(X.to(device), torch.tensor(labels).to(device))['predictions'].argmax(1)

transformers trainer,# Transformers,深度學(xué)習(xí),機器翻譯,人工智能,Transformers文章來源地址http://www.zghlxwxcb.cn/news/detail-626594.html

到了這里,關(guān)于Transformers實戰(zhàn)——使用Trainer類訓(xùn)練和評估自己的數(shù)據(jù)和模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 模型實戰(zhàn)(3)之YOLOv7實例分割、模型訓(xùn)練自己數(shù)據(jù)集

    下載yolov7實例分割模型: 安裝環(huán)境

    2023年04月08日
    瀏覽(29)
  • GPT實戰(zhàn)系列-如何用自己數(shù)據(jù)微調(diào)ChatGLM2模型訓(xùn)練

    廣告文案生成模型 輸入文字 :類型#裙 顏色#藍色 風(fēng)格#清新*圖案#蝴蝶結(jié) 輸出文案 :裙身處采用立體蝴蝶結(jié)裝飾輔以藍色條帶點綴,令衣身造型飽滿富有層次的同時為其注入一絲甜美氣息。將女孩清新嬌俏的一面襯托而出。 訓(xùn)練和測試數(shù)據(jù)組織: 數(shù)據(jù)可以從 下載鏈接,t

    2024年02月06日
    瀏覽(18)
  • ChatGLM2-6B、ChatGLM-6B 模型介紹及訓(xùn)練自己數(shù)據(jù)集實戰(zhàn)

    ChatGLM2-6B、ChatGLM-6B 模型介紹及訓(xùn)練自己數(shù)據(jù)集實戰(zhàn)

    介紹 ChatGLM-6B是開源的文本生成式對話模型,基于General Language Model(GLM)框架,具有62億參數(shù),結(jié)合模型蒸餾技術(shù),實測在2080ti顯卡訓(xùn)練中上(INT4)顯存占用 6G 左右, 優(yōu)點 :1.較低的部署門檻: FP16 半精度下,ChatGLM-6B 需要至少 13GB 的顯存進行推理,結(jié)合模型量化技術(shù),一需求可以進一步

    2024年02月12日
    瀏覽(25)
  • 精華整理幾十個Python數(shù)據(jù)科學(xué)、機器學(xué)習(xí)、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、人工智能方面的核心庫以及詳細(xì)使用實戰(zhàn)案例,輕松幾行代碼訓(xùn)練自己的專有人工智能模型

    精華整理幾十個Python數(shù)據(jù)科學(xué)、機器學(xué)習(xí)、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、人工智能方面的核心庫以及詳細(xì)使用實戰(zhàn)案例,輕松幾行代碼訓(xùn)練自己的專有人工智能模型

    精華整理幾十個Python數(shù)據(jù)科學(xué)、機器學(xué)習(xí)、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、人工智能方面的核心庫以及詳細(xì)使用實戰(zhàn)案例,輕松幾行代碼訓(xùn)練自己的專有人工智能模型。 機器學(xué)習(xí) 人工智能的核心,是使計算機具有智能的根本途徑。機器學(xué)習(xí)專注于算法,允許機器學(xué)習(xí)而不需要編程,

    2024年01月25日
    瀏覽(98)
  • 使用SwinUnet訓(xùn)練自己的數(shù)據(jù)集

    使用SwinUnet訓(xùn)練自己的數(shù)據(jù)集

    參考博文: https://blog.csdn.net/qq_37652891/article/details/123932772 遙感圖像多類別語義分割,總共分為7類(包括背景) image: label_rgb label(這里并不是全黑,其中的類別取值為 0,1,2,3,4,5,6 ),此后的訓(xùn)練使用的也是這樣的數(shù)據(jù) 數(shù)據(jù)地址 百度云: https://pan.baidu.com/s/1zZHnZfBgVWxs6T

    2024年02月04日
    瀏覽(23)
  • 使用MMDetection訓(xùn)練自己的數(shù)據(jù)集

    使用MMDetection訓(xùn)練自己的數(shù)據(jù)集

    本文主要闡述如何使用 mmdetection 訓(xùn)練自己的數(shù)據(jù),包括配置文件的修改,訓(xùn)練時的數(shù)據(jù)增強,加載預(yù)訓(xùn)練權(quán)重以及繪制損失函數(shù)圖等。這里承接上一篇文章,默認(rèn)已經(jīng)準(zhǔn)備好了 COCO 格式數(shù)據(jù)集且已安裝 mmdetection ,環(huán)境也已經(jīng)配置完成。 這里說明一下,因為 mmdetection 更新至

    2024年02月06日
    瀏覽(24)
  • 博客3:YOLOv5車牌識別實戰(zhàn)教程:模型訓(xùn)練與評估

    博客3:YOLOv5車牌識別實戰(zhàn)教程:模型訓(xùn)練與評估

    摘要:本篇博客將詳細(xì)介紹如何使用YOLOv5進行車牌識別模型的訓(xùn)練與評估。我們將搭建訓(xùn)練環(huán)境、準(zhǔn)備數(shù)據(jù)、配置模型參數(shù)、啟動訓(xùn)練過程,以及使用驗證集評估模型性能。 車牌識別視頻 正文: 3.1 搭建訓(xùn)練環(huán)境 ? 首先,我們需要搭建YOLOv5的訓(xùn)練環(huán)境。YOLOv5使用PyTorch框架,

    2024年02月04日
    瀏覽(24)
  • YOLOv5的Tricks | 【Trick15】使用COCO API評估模型在自己數(shù)據(jù)集的結(jié)果

    如有錯誤,懇請指出。 在解析yolov5整個工程項目的時候要,已經(jīng)對其detect.py腳本和val.py腳本進行分別的解析。其中,個人覺得detect腳本寫得過于冗雜,所以分別為每個任務(wù)(圖片推理,視頻推理,攝像頭推理)單獨的寫了個簡單易懂的推理腳本。 在之前在解析完val.py腳本之

    2024年02月07日
    瀏覽(30)
  • 【預(yù)訓(xùn)練語言模型】 使用Transformers庫進行BERT預(yù)訓(xùn)練

    【預(yù)訓(xùn)練語言模型】 使用Transformers庫進行BERT預(yù)訓(xùn)練

    基于 HuggingFace的Transformer庫,在Colab或Kaggle進行預(yù)訓(xùn)練。 鑒于算力限制,選用了較小的英文數(shù)據(jù)集wikitext-2 目的 :跑通Mask語言模型的預(yù)訓(xùn)練流程 注意:在Kaggle上訓(xùn)練時,最好將datasets更新到最新版(再重啟kernel),避免版本低報錯 colab和kaggle已經(jīng)預(yù)安裝transformers庫 加載數(shù)據(jù)

    2024年03月14日
    瀏覽(27)
  • 使用pyskl的stgcn++訓(xùn)練自己的數(shù)據(jù)集

    使用pyskl的stgcn++訓(xùn)練自己的數(shù)據(jù)集

    https://github.com/kennymckormick/pyskl?包含多種動作分類的模型,感謝大佬 訓(xùn)練過程主要參考項目中的 examples/extract_diving48_skeleton/diving48_example.ipynb 但是我一開始不知道這個文件,從網(wǎng)上查不到太多的資料,走了不少彎路,這里就把我訓(xùn)練的過程分享一下。 這里使用的是Weizmann數(shù)據(jù)

    2024年02月03日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包