我正在嘗試將GPT2架構(gòu)用于音樂(lè)應(yīng)用,因此需要從頭開(kāi)始訓(xùn)練它。經(jīng)過(guò)一番谷歌搜索,我發(fā)現(xiàn)來(lái)自擁抱臉github的問(wèn)題#1714已經(jīng)“解決”了這個(gè)問(wèn)題。當(dāng)我嘗試運(yùn)行建議的解決方案時(shí):from transformers import GPT2Config, GPT2ModelNUMLAYER = 4NUMHEAD = 4SIZEREDUCTION = 10 #the factor by which we reduce the size of the velocity argument.VELSIZE = int(np.floor(127/SIZEREDUCTION)) + 1 SEQLEN=40 #size of data sequences.EMBEDSIZE = 5 config = GPT2Config(vocab_size = VELSIZE, n_positions = SEQLEN, n_embd = EMBEDSIZE, n_layer = NUMLAYER, n_ctx = SEQLEN, n_head = NUMHEAD) model = GPT2Model(config)我收到以下錯(cuò)誤:Traceback (most recent call last): File "<ipython-input-7-b043a7a2425f>", line 1, in <module> runfile('C:/Users/cnelias/Desktop/PHD/Swing project/code/script/GPT2.py', wdir='C:/Users/cnelias/Desktop/PHD/Swing project/code/script') File "C:\Users\cnelias\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile execfile(filename, namespace) File "C:\Users\cnelias\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/cnelias/Desktop/PHD/Swing project/code/script/GPT2.py", line 191, in <module> model = GPT2Model(config)這是什么意思,我該如何解決?同樣更一般地說(shuō),是否有關(guān)于如何使用GPT2進(jìn)行轉(zhuǎn)接呼叫的文檔?我可以定義自己的函數(shù)還是必須使用模型的內(nèi)置函數(shù)?我是被迫使用 a 進(jìn)行訓(xùn)練,還是可以給它單獨(dú)的張量?我尋找它,但在文檔上找不到這些問(wèn)題的答案,但也許我錯(cuò)過(guò)了一些東西。train()DatasetPS :我已經(jīng)閱讀了博客文章fron huggingface.co,但它省略了太多的信息和細(xì)節(jié),不適合我的應(yīng)用程序。
1 回答

慕桂英4014372
TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
我認(rèn)為錯(cuò)誤消息非常清楚:
assert n_state % config.n_head == 0
通過(guò)代碼追溯它,我們可以看到
n_state = nx # in Attention: n_state=768
這表示 表示嵌入維度(在類(lèi)似BERT的模型中,默認(rèn)情況下通常為768)。然后,當(dāng)我們查看 GPT-2 文檔時(shí),似乎指定此參數(shù)是 ,您正在將其設(shè)置為 。正如錯(cuò)誤所示,嵌入維度必須通過(guò)注意力頭的數(shù)量均勻可整除,這些注意頭被指定為 。因此,選擇不同的嵌入維度作為倍數(shù)應(yīng)該可以解決問(wèn)題。當(dāng)然,您也可以更改開(kāi)始的磁頭數(shù),但似乎不支持奇數(shù)嵌入維度。n_state
n_embd
5
4
4
添加回答
舉報(bào)
0/150
提交
取消