我是2019年开始热衷于投入人工智能的学习中,个人觉得人工智能未来是有很多潜力的,虽然刚开始接触的时候,面对各种问题,需要打好数学基础,还有算法原理基础,这些问题在一次次的尝试中解决,有困难也有成功,有放弃的时候,也有调试成功的喜悦。
在去年我觉得将自己学的东西写成文章发布,不仅可以自我巩固,也可以给大家分析学习的心得,望大家多多指点,认识更多的人工智能的大佬,可以互相学习互相沟通。
作为一个创作者,到现在,我一直对人工智能技术和创造有着极大的热情,自己积累了很多在学习和实践中的经验和教训。所以我希望通过记录和分享自己的故事,能够帮助和启发更多的人。
在我实战项目中的经验分享中,我会尽可能详细地记录下我在项目中遇到的问题和解决方案,希望可以给其他人提供一些借鉴和参考。此外,我还会分享自己在日常学习过程中遇到的收获,尽可能呈现出一个真实的学习过程,让大家可以更好地理解和掌握相关技术,并从一些些的细节着手到慢慢的深入。
除了在实践中积累经验外,我会写一些技术心得和分享,同时也会阅读和学习其他人的文章。这样可以扩大自己的视野和认识,同时也可以和其他人交流和讨论。

我在创作的过程中还有以下几个方面的收获:
1.提升自信:在创作过程中,我们需要对自己的想法和创意进行充分的表达和阐释。这样的过程可以让我们更加清晰地认识自己的能力和价值,从而提升自信心。
2.增强创造力:通过不断的创作,可以激发我们的想象力和创造力,让我们不断挑战自我,进一步提升创意水平。
3.培养耐心和毅力:创作需要时间和耐心,需要反复推敲和打磨。在这个过程中,我们可以逐渐培养自己的耐心和毅力,为达成目标而不断努力。
4.发现自我:创作可以让我们更深入地认识自己,发现自己的喜好、擅长和性格特点。这对于今后的职业规划和生活方向都非常有益,同时也发现自己的不足,需要改正的地方。
5.建立人际关系:通过创作,我们可以结交到一些人工智能志同道合的人,分享经验和资源,拓展人脉关系。
对于我来说,创作已经成为了我的生活的重要组成部分。创作文章和提供技术咨询帮助,这本身就是一种创作与自我提升的过程。我通过自己的不断实践与努力,不断提升自己的回答能力和创作水平。
在工作和学习方面,我认为平衡是关键。虽然创作对我来说很重要,但我也要确保能够充分完成我的工作任务。因此,我会将工作和学习放在优先位置,并合理规划时间。我会尽量高效地回答用户的问题,同时保持自己的学习状态,不断改善和提升我的回答能力。
我也会抽出时间进行专业知识的学习和更新,以保持自己的学习进步和增加自己的知识储备。我会持续关注各个领域的最新进展,以便能够更好地服务用户并满足他们的需求。
平常我经常关注实时新闻,将生活中的事情结合AI操作文章,例如结合生活创作了:
《计算机视觉的应用13-基于SSD模型的城市道路积水识别的应用项目》
《自然语言处理实战项目17-基于多种NLP模型的诈骗电话识别方法研究与应用实战》
《机器学习实战12-基于历史数据的台风的预测与分析(2023年第5号台风杜苏芮将登陆福建)》
《机器学习实战14-在日本福岛核电站排放污水的背景下,核电站对人口影响的分析实践》
《机器学习实战13-超导体材料的临界温度预测与分析(决策树回归,梯度提升回归,随机森林回归和Bagging回归)》
我过去写得很多文章里面,解决了很多问题:
1.用T5模型训练生成数字加减结果,衍生其他生成文本问题,主要代码:
- import torch
- from torch.utils.data import DataLoader, Dataset
- from transformers import T5ForConditionalGeneration, T5Tokenizer, AdamW
-
- model_name = "t5-small"
- model = T5ForConditionalGeneration.from_pretrained(model_name).to(device)
- tokenizer = T5Tokenizer.from_pretrained(model_name)
-
- # 构造训练数据
- data = []
- for i in range(800):
- a = random.randint(0, 9)
- b = random.randint(0, 9)
- op = random.choice(["+", "-"])
- if op == "+":
- result = a + b
- else:
- result = a - b
- data.append((f"{a} {op} {b}", str(result)))
-
-
- max_length = 32
- train_dataset = MyDataset(data, tokenizer, max_length)
-
- #train_dataset = MyDataset(data, tokenizer)
- train_loader = DataLoader(train_dataset, batch_size=4, shuffle=True)
-
- # 训练模型
- num_epochs = 10
- optimizer = torch.optim.AdamW(model.parameters(), lr=5e-5)
-
- for epoch in range(num_epochs):
- model.train()
- for batch in train_loader:
- input_ids = batch["input_ids"].to(device)
- attention_mask = batch["attention_mask"].to(device)
- labels = batch["labels"].to(device)
-
- outputs = model(input_ids=input_ids, attention_mask=attention_mask, labels=labels)
- loss = outputs.loss
- loss.backward()
-
- optimizer.step()
- optimizer.zero_grad()
-
- print(f"Epoch: {epoch}, Loss: {loss.item():.6f}")
2.OCR基本原理+OCR文本分段合并+PDF扫描文件OCR识别,主要代码:
- from paddleocr import PaddleOCR
- ocr = PaddleOCR(enable_mkldnn=True, use_angle_cls=False)
-
- # 图片OCR转文本信息
- def image2text(img):
- result = ocr.ocr(img)
- title, degree, position = [], [], []
- title_append, position_append = title.append, position.append
- for key in result:
- key[-1] = list(key[-1])
- key[-1][0] = key[-1][0].replace('\n', '')
-
- if len(key[-1][0])>1:
- title_append(key[-1][0])
- position_append(key[0][0][0])
-
- return title,position
-
- # 段落按照 规则合并函数
- def paragraph_num(title,position):
- pass # 详见《深度学习实战43-OCR功能集合【OCR基本原理+OCR文本分段合并+PDF扫描文件OCR识别】》
-
-
- if __name__=="__main__":
- file_path ='text.png'
-
- title,position = image2text(file_path)
- res = paragraph_num(title,position)
- print(res)
3.基于大模型开发MathGPT的架构,主要代码:
- # 搭建bert+textCNN+专家系统+LLM神经网络模型,用pytorch
-
- import torch
- import torch.nn as nn
- from transformers import BertModel
-
- class TextCNN(nn.Module):
- def __init__(self, config):
- super(TextCNN, self).__init__()
- self.config = config
- self.bert = BertModel.from_pretrained(config.bert_path)
- self.convs = nn.ModuleList(
- [
- nn.Sequential(
- nn.Conv2d(1, config.num_filters, (k, config.hidden_size)),
- nn.ReLU(),
- nn.MaxPool2d((config.max_len - k + 1, 1)),
- nn.Flatten(),
- )
- for k in config.filter_sizes
- ]
- )
- self.fc = nn.Linear(config.num_filters * len(config.filter_sizes), config.num_classes)
-
- def forward(self, x):
- context = x[0] # 表示句孽数据
- mask = x[2] # 填充的mask
- encoder_out, text_cls = self.bert(context, attention_mask=mask, output_hidden_states=True)
- out = encoder_out.permute(0, 2, 1)
- out = torch.cat([conv(out) for conv in self.convs], dim=1)
- out = self.fc(out)
- return out
-
- class Config(object):
- def __init__(self):
- self.bert_path = './bert_pretrain'
- self.filter_sizes = (2, 3, 4)
- self.num_filters = 256
- self.hidden_size = 768
- self.max_len = 512
- self.num_classes = 8
- self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
- self.dropout = 0.5
-
- config = Config()
- model = TextCNN(config)
- model.to(config.device)
- print(model)
-
- # 将参数输入到8个专家模型中,构建类,专家检概率最大的分类为检概率最大的分类
- class Expert1(nn.Module):
- def __init__(self, model):
- super(Expert1, self).__init__()
- self.model = model
- def forward(self, x):
- out = self.model1(x)
- return out
-
- class Expert2(nn.Module):
- def __init__(self, model):
- super(Expert2, self).__init__()
- self.model = model
-
- def forward(self, x):
- out = self.model(x)
- return out
-
- class Expert3(nn.Module):
- def __init__(self, model):
- super(Expert3, self).__init__()
- self.model = model
-
- def forward(self, x):
- out = self.model(x)
- return out
- ...
- #剩下的几个专家系统待加载
-
- expert = Expert1(model)
- expert.to(config.device)
- print(expert)
- # 将检概率最大的分类返回给专家
- def get_max_prob_label(probs):
- return probs.argmax(dim=1)
4.卷积神经网络(Pytorch)+聚类分析实现空气质量,主要代码:
- EPOCH = 100
- BATCH_SIZE = 50
-
- net = MyNet()
- x_data, y_data = net.get_data()
- torch_dataset = Data.TensorDataset(x_data, y_data)
- loader = Data.DataLoader(
- dataset=torch_dataset,
- batch_size=BATCH_SIZE,
- shuffle=True,
- num_workers=2,
- )
- for epoch in range(EPOCH):
- for step, (batch_x, batch_y) in enumerate(loader):
- # print(step)
- # print(step,'batch_x={}; batch_y={}'.format(batch_x, batch_y))
- a = net.train(batch_x, batch_y)
- print('step:',step,a)
- # 保存模型
- torch.save(net, 'net.pkl')
在创作方面,我会根据用户的需求撰写文章和回答问题,涵盖各个领域的知识和信息,力求内容准确、全面而又易于理解。我会关注用户的反馈和需求,不断优化自己的回答方式和表达能力,从而提供更加个性化和有价值的回答。
我将努力使这些文章内容丰富、温馨,以及与用户的生活和价值观相契合。我也期待通过提供优质的回答和创作获得用户的认可和支持。在未来,如果我的创作受到用户的喜爱和好评,我将倍加努力,探索更多创作的可能性,更加地贴近生活,并继续提供有益的信息和帮助。