Python tensor向量维度转换,不同维度的向量转化为相同的维度,经过全连接层MLP的维度转换,代码实战

48 篇文章 23 订阅
23 篇文章 1 订阅

问题:在机器学习特征工程中,假如每类特征需要转化为相同的维度进行拼接,那该怎么办呢?接一个全连接层MLP就可以了。

例子:将(128,64) 维度的向量转化为(128,32)维。

import torch
import torch.nn as nn

# 定义多层感知机模型
class MLP(nn.Module):
    def __init__(self):
        super(MLP, self).__init__()
        self.fc1 = nn.Linear(64, 64)  # 第一个全连接层,输入维度为64,输出维度为64
        self.fc2 = nn.Linear(64, 32)  # 第二个全连接层,输入维度为64,输出维度为32
        self.relu = nn.ReLU()         # 激活函数使用ReLU

    def forward(self, x):
        x = self.relu(self.fc1(x))    # 输入经过第一个全连接层和激活函数
        x = self.fc2(x)               # 第一个全连接层的输出经过第二个全连接层
        return x

# 创建MLP模型实例
mlp_model = MLP()

# 定义输入数据
input_data = torch.randn(128, 64)

# 使用MLP模型进行转换
output_data = mlp_model(input_data)

# 打印输出数据的维度
print("Output shape:", output_data.shape)

现在就可以去拼接特征了,如果想提升准确率,还是需要加一个损失函数进行训练一下,直接和后面任务的损失函数进行组合就可以啦。或者单独的训练也可以啦。

注意:向量拼接之前,最好进行特征归一化,将特征转化为可比的数值范围。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

医学小达人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值