# lstm生成cpp代码项目
## 第一版想法
## 步骤
- [x] 获取并整合我自己写的cpp代码(考虑将每个cpp文件独立出来)
- [x] 分隔所有的原子单位, 并转化为以0开始的整数
- [x] 生成lstm输入的序列(因为每个文件独立, 所以对每个文件获取若干个序列)
- [x] 定义网络, 使用pytorch的embedding和lstm模型
- [x] 定义超参数
- [x] 训练模型, 调参, 保存模型
- [x] 运行模型, 得出生成的代码, 自动格式化(如果做得到)
- [x] 预测时多输入序列
## 问题点
- [x] 关键字较少, 模式非常类似.
## 第一版结果
训练的loss值. 其实整个训练的中后期一直是这个值左右.
![](./imgs/0.png)
### include开头
```cpp
#include <cmath>
#include <vector>
usingname space std;
intmain() {
long long a[4] = { {-1, 1, 3, 3, 3, 5, 3, 4, 5, 5, 6, 7, 9, 3, 3}, {1, -2, --3, -1, 1, 3, 2, 3, 3, -3, 3};
intn, m, k, k = 0, j = 0;
while (n[i] != 0) {
//cin.get();
for (intj = 0; j < n; ++j)
if (a[i] != '1')&&str[i]<='z'))cout<<"\n当前链表为:";
list_1.print();
list_1.push_back(3);
list_1.push_back(i);
for (inti = 0; i < 3; i++) {
cout << a[i];
}
/*251231423535154233635345646565*/ /*4556344432455445453654636364565454454345668999678867791097842124264643543577899998848784214433665689645563422545564224643334435244423685445456456799888888888888888888888888888888822888888888888888888888888*//*412433423445436568986
```
### main开头
```cpp
main() {
int n, m;
cin >> n;
for (int i = 2; i < = n; + +i) {
if (str[i] = = ' 1 ') {
cout < < " \ n当前链表为 : \ n ";
for (int j = 1; j < = n; + +j) {
for (int j = 0, j = i; j < = 10; + +j) {
cin >> a[i];
}
}
cout < < ans;
}
```
### #include<iostream>开头
```cpp
#include < iostream >
#include < vector >
using namespace std;
int main() {
int a[1001], n, i = 0;
for (register int i = 0; i < n; + +i) {
cout < < n[i];
cout < < endl;
}
int n, m, m;
cin >> n;
for (int i = 1; i < = n; + +i) {
cin >> a >> b;
for (int i = 1; i < = 4; i + +) {
if (!vis[v][i] & &s[j + +] = = 0) return false;
} if ((i + 1 ) % 2 = 1 ; if (n < = m ) {
if (i = = 0) {
tmp + = intToStr(f _ m, i, x, y, y);
} }
}
void loop(int x) {
for (int i = 1; i < = 10; i + +) {
for (int j = 1; j < = n; + +l) {
/ /
}
cout < < " No \ n \ n ";
/ / cout < < " - - - - - - - - - - - - - - - - - - - - - - " < < endl;
cout < < endl;
}
}
}
```
其他可在generate文件夹中查看
没有合适的资源?快使用搜索试试~ 我知道了~
使用lstm, 基于我写的cpp代码, 生成新的cpp代码.zip
共43个文件
png:21个
cpp:7个
md:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 53 浏览量
2024-05-22
17:05:13
上传
评论
收藏 4.16MB ZIP 举报
温馨提示
使用lstm, 基于我写的cpp代码, 生成新的cpp代码LSTM (Long Short-Term Memory) 是一种特殊的循环神经网络(RNN)架构,用于处理具有长期依赖关系的序列数据。传统的RNN在处理长序列时往往会遇到梯度消失或梯度爆炸的问题,导致无法有效地捕捉长期依赖。LSTM通过引入门控机制(Gating Mechanism)和记忆单元(Memory Cell)来克服这些问题。 以下是LSTM的基本结构和主要组件: 记忆单元(Memory Cell):记忆单元是LSTM的核心,用于存储长期信息。它像一个传送带一样,在整个链上运行,只有一些小的线性交互。信息很容易地在其上保持不变。 输入门(Input Gate):输入门决定了哪些新的信息会被加入到记忆单元中。它由当前时刻的输入和上一时刻的隐藏状态共同决定。 遗忘门(Forget Gate):遗忘门决定了哪些信息会从记忆单元中被丢弃或遗忘。它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 输出门(Output Gate):输出门决定了哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。同样地,它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 LSTM的计算过程可以大致描述为: 通过遗忘门决定从记忆单元中丢弃哪些信息。 通过输入门决定哪些新的信息会被加入到记忆单元中。 更新记忆单元的状态。 通过输出门决定哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。 由于LSTM能够有效地处理长期依赖关系,它在许多序列建模任务中都取得了很好的效果,如语音识别、文本生成、机器翻译、时序预测等。
资源推荐
资源详情
资源评论
收起资源包目录
使用lstm, 基于我写的cpp代码, 生成新的cpp代码.zip (43个子文件)
content
helper.py 1KB
generate
generate_for.cpp 1KB
generate_include_iostream.cpp 852B
generate_main_1000.cpp 694B
generate_include.cpp 799B
generate_cout.cpp 2KB
generate_i.cpp 1KB
generate_main.cpp 359B
lstm_generate_cpp_code.ipynb 86KB
readme.md 3KB
getCppFiles.py 1KB
tempCodeRunnerFile.py 121B
docs
zh-cn
assets
1571754217669.png 265KB
1571751586284.png 272KB
1571755050780.png 196KB
1571752554321.png 206KB
1571751580301.png 272KB
1571752564883.png 206KB
1571754244135.png 265KB
1571751469419.png 274KB
1571752567743.png 206KB
1571753756323.png 96KB
middle.md 2KB
README.md 34B
_sidebar.md 64B
.nojekyll 0B
assets
1571754217669.png 265KB
1571751586284.png 272KB
1571755050780.png 196KB
1571752554321.png 206KB
1571751580301.png 272KB
1571752564883.png 206KB
1571754244135.png 265KB
1571751469419.png 274KB
1571752567743.png 206KB
1571753756323.png 96KB
index.html 1KB
middle.md 2KB
README.md 332B
randomSequence.py 1KB
.gitignore 55B
splitCppData.py 2KB
imgs
0.png 22KB
共 43 条
- 1
资源评论
生瓜蛋子
- 粉丝: 3828
- 资源: 5775
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功