pytorch怎么输入多个特征
我刚刚开始学习机器学习相关的内容,在自己试着做一些小东西的时候发现,网上的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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在问这个问题之前,我还不是很了解 nn.module 这个类,与 pytorch 的一些基础知识
在pytorch的
nn.Module
类中,初始化__init__
的时候传入的是各个层的特征数。以我拿的分类器为例子来说,这个分类器很简单,网络中没有太多的层次,就是做了一个线性回归的操作。传入的
i_char
为输入特征个数,o_labels
为输入特征个数。比如,我的特征有密文类型和密文长度,密文类型产生的特征(先不算符号)有26 + 26 + 10 = 62个,这时候我还想要添加1个密文长度的特征,这时候就特征就有63个。每次调用这个类也就是它的
__call__
的时候,这个函数会调用forward
这个函数,并给这个函数传入我们调用model
的时候传入的内容。这个传入内容就是特征的相关内容。