鍍金池/ 問答/人工智能  HTML/ pytorch怎么輸入多個特征

pytorch怎么輸入多個特征

我剛剛開始學習機器學習相關的內容,在自己試著做一些小東西的時候發(fā)現(xiàn),網(wǎng)上的pytorch內容只輸入了一個特征,可能是我的關鍵詞不對。如果我要使用pytorch創(chuàng)建一個模型的話,要怎么輸入多個特征來達到更好的計算效果呢?

如下,想做一個判斷加密類型的分類器,一個密文的類型可以通過字符類型和密文長度來判斷,但是現(xiàn)在我只能輸入一個特征,字符類型。

class PasswordClassifier(nn.Module):
    def __init__(self, i_char, o_labels):
        super(PasswordClassifier, self).__init__()
        self.l_char = nn.Linear(i_char, o_labels)

    def forward(self, f_char):
        return self.linear(f_char)

model = PasswordClassifier(CHARS_LEN, len(LABELS_INDEX))
loss_func = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=LEARNING_RATE)

現(xiàn)在我想再輸入一個密文長度特征,我應該怎么給我的模型添加輸入特征和損失函數(shù)等內容讓模型更好的聯(lián)系到輸出標簽上?

回答
編輯回答
半心人

在問這個問題之前,我還不是很了解 nn.module 這個類,與 pytorch 的一些基礎知識

在pytorch的 nn.Module 類中,初始化 __init__ 的時候傳入的是各個層的特征數(shù)。
以我拿的分類器為例子來說,這個分類器很簡單,網(wǎng)絡中沒有太多的層次,就是做了一個線性回歸的操作。傳入的
i_char 為輸入特征個數(shù),o_labels 為輸入特征個數(shù)。比如,我的特征有密文類型和密文長度,密文類型產生的特征(先不算符號)有26 + 26 + 10 = 62個,這時候我還想要添加1個密文長度的特征,這時候就特征就有63個。

每次調用這個類也就是它的 __call__ 的時候,這個函數(shù)會調用 forward 這個函數(shù),并給這個函數(shù)傳入我們調用 model 的時候傳入的內容。這個傳入內容就是特征的相關內容。

2018年7月7日 08:54