pytorch怎么输入多个特征

发布于 2022-09-06 23:55:26 字数 679 浏览 15 评论 0

我刚刚开始学习机器学习相关的内容,在自己试着做一些小东西的时候发现,网上的pytorch内容只输入了一个特征,可能是我的关键词不对。如果我要使用pytorch创建一个模型的话,要怎么输入多个特征来达到更好的计算效果呢?

如下,想做一个判断加密类型的分类器,一个密文的类型可以通过字符类型和密文长度来判断,但是现在我只能输入一个特征,字符类型。

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)

现在我想再输入一个密文长度特征,我应该怎么给我的模型添加输入特征和损失函数等内容让模型更好的联系到输出标签上?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

走野 2022-09-13 23:55:26

在问这个问题之前,我还不是很了解 nn.module 这个类,与 pytorch 的一些基础知识

在pytorch的 nn.Module 类中,初始化 __init__ 的时候传入的是各个层的特征数。
以我拿的分类器为例子来说,这个分类器很简单,网络中没有太多的层次,就是做了一个线性回归的操作。传入的
i_char 为输入特征个数,o_labels 为输入特征个数。比如,我的特征有密文类型和密文长度,密文类型产生的特征(先不算符号)有26 + 26 + 10 = 62个,这时候我还想要添加1个密文长度的特征,这时候就特征就有63个。

每次调用这个类也就是它的 __call__ 的时候,这个函数会调用 forward 这个函数,并给这个函数传入我们调用 model 的时候传入的内容。这个传入内容就是特征的相关内容。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文