# 用于 MEXC 价格预测的自定义 Transformer 模型 ## 模型描述 此模型是用于预测 MEXC 合约价格的自定义 Transformer 模型。它由一个嵌入层、后面是多个 Transformer 编码器层以及末尾的全连接层组成,以产生输出。 ## 模型架构 - **输入维度:** 13 - **模型维度:** 64 - **头部数量:** 8 - **层数:** 2 - **输出维度:** 1 ## 训练数据 该模型基于历史 MEXC 合约交易数据进行训练。特征包括开盘价、收盘价、最高价、最低价、交易量、金额、实际开盘价、实际收盘价、实际最高价、实际最低价和移动平均线。 ## 训练细节 - **优化器**:Adam - **学习率**:0.001 - **损失函数**:均方误差 (MSE) - **批次大小**:32 - **周期数**:50 ## 用法 要使用此模型进行预测,请按照以下步骤操作: 1. 加载模型和配置: ```python import torch import torch.nn as nn from transformers import AutoConfig class CustomTransformerModel(nn.Module): def __init__(self, config): super(CustomTransformerModel, self).__init__() self.embedding = nn.Linear(config.input_dim, config.model_dim) self.encoder_layer = nn.TransformerEncoderLayer(d_model=config.model_dim, nhead=config.num_heads, batch_first=True) self.transformer_encoder = nn.TransformerEncoder(self.encoder_layer, num_layers=config.num_layers) self.fc = nn.Linear(config.model_dim, config.output_dim) def forward(self, src): src = self.embedding(src) output = self.transformer_encoder(src) output = self.fc(output[:, -1, :]) return output config = AutoConfig.from_pretrained("your-username/mexc_price_model", config_file_name="BTC_USDT.json") model = CustomTransformerModel(config) model.load_state_dict(torch.load("model_repo/mexc_price.pth")) model.eval() ``` 2. 准备输入数据并进行预测: ```python import numpy 作为 np 从 sklearn.preprocessing 导入 StandardScaler new_data = np.array([ [1.727087e+09, 63483.9, 63426.2, 63483.9, 63411.6, 1193897.0, 7.575486e+06, 63483.8, 63426.2, 63483.9, 63411.6, 0.00, 0.0, 0.0] ]) scaler = StandardScaler() new_data_scaled = scaler.fit_transform(new_data) input_tensor = torch.tensor(new_data_scaled, dtype=torch.float32).unsqueeze(1) 使用 torch.no_grad(): prediction = model(input_tensor) predicted_value = prediction.squeeze().item() print(f"预测值:{predicted_value}") ``` ## 许可证 此模型根据 [MIT 许可证](LICENSE) 获得许可。