File size: 2,459 Bytes
6ba557b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# 用于 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) 获得许可。