惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
T
Tailwind CSS Blog
Recent Announcements
Recent Announcements
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Proofpoint News Feed
D
Docker
Google DeepMind News
Google DeepMind News
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
IT之家
IT之家
H
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
B
Blog
D
DataBreaches.Net

静静的小窝

在VPS服务器上面安装OpenClaw并使用OpenRouter的免费API的一些“坑” | Some "pits" about installing OpenClaw and using OpenRouter's free API on a VPS server 五年了啊 | Five years 一个奇怪的估算 | A strange estimation 虚拟直播之路2 | Living as a V 2 虚拟直播之路 | Living as a V X静评1.1:谷歌,快成了?| XComment1.1 Is Google's Success Coming? X静评0.3:要精致吗?| XComment0.3 Be Dainty? X静评0.2:座位是购买的服务还是赠送的服务?| Xcomment0.2 A Bought Seat or A Gift Seat X静评0.1:一纸限令,毁掉一个政策?| XComment0.1 One Paper, One Dead Policy? hadoop 3.2.2 Cluster Setup | hadoop 3.2.2 的集群启动 894A题解|894A Solution VY223 Journal Smith’s death 第一次翻墙|first cross wall [题解]异或三角形|2021蓝桥杯国赛|xor triangle 2021年蓝桥杯|LanQiaoCup2021 参赛|Attending Contest 新旧|New and Old 去毛泽东旧居| visit MAO ZEDONG old house 拜登会团结美国吗|Will Biden unite the USA? 出生|Birth 背包问题|knapsack problem 冒泡排序与排序的稳定性|Bubble Sort and Stability 看完哔哩哔哩上的NASA的火星车直播后的一些话|My words after watching NASA's launch of the Mars 2020 perseverance rover live on Bilibili 选择排序|Selection Sort 饭圈与特郎普|fandom and Trump 不盲目|No Blindness 从3到n——一道数学题|a math problem from 3 to N 公权与私权|public and private rights 我在第几层|Where I Am
AI 写代码?| AI coding?
静静 · 2023-11-16 · via 静静的小窝

本文所指AI,仅包括ChatGPT(GPT3.5),Copilot以及文心一言。其他模型没有进行尝试。

用AI写代码在过去的一年中可能已经很常见了,不过我则是几乎没有使用过。这一周为了迁移代码从Python到C++,可是和AI斗法废了一番功夫。

先介绍一下背景吧,毕设涉及到了汽车的图像识别,考虑各种情况最后选择了intel的神经计算棒加速,自然也就用了OpenVINO。因为我负责的是项目其他部分,所以并没有在意这个部分,直到我们的Python版本测试效果不错,需要合入C++版本的时候,“噩梦”才开始了。

因为之前在RoboMaster时有干过Python转C++的活,干的也是Opencv的东西。所以一开始听说转换有问题的时候,觉得我应该能搞定,就跟着一起搞,觉得opencv的api在cpp和python上基本一样,一行行照抄改不就是了。然后就发现遇到了问题,有这样一行代码:image = image.transpose((2, 0, 1))用于对opencv读到的图片进行维度转换以符合模型的输入要求,然而当我去查opencv的api时,发现opencv的transpose并不长这样,只有一个输入和输出。搜索后发现,这里是用了numpy的函数进行了转换。可是cpp没有numpy啊,为了一个这个功能再搞eigen?好像也不合适。此时cpp的代码已经写好了可以编译运行,只是模型结果和python的不一样,识别不出车子来。于是去看cpp代码是怎么写的,发现是cvtColor,emm?于是队友就开始问了AI,给出的方案是手动三重循环转换,copy进代码跑,发现还是不行。于是反复循环问ai,copy进代码,发现不行。我也试了copilot的翻译代码功能到cpp,结果照样不行。反复尝试换模型(FP32,FP16),修改遍历顺序,修改不同的api,都不行。

我于是尝试搞到自己电脑上跑。原来的编译是直接g++跑,但是换了环境之后自然是跑不了了,再加上其他部分代码都是cmake编译的,便尝试搞成cmake,弄了好久搞定了,在编译时会提示使用了2024要被废弃(如废)的框架。于是我想到不如用新框架也许能更好写,便问了队友初始的python代码是从哪个文档里面学来的,得知也是AI生成的。

我想着AI只能出旧框架,那我要不上网搜索有没有新框架。于是花了可能就一分钟就找到了知乎上的文章,然后照着抄,抄的时候看到文章里面的转换,感觉和我们的代码一样,可能还是不行的时候,突然反应过来不一样的地方:之前的尝试,都只是在改模型部分的类型在各种变化,但是Mat读的时候,一直是at成float读的,但是我们的图片读进来是int啊,到原来代码里面一改,模型输出正确了。

关键的修改

唉,与其去搞AI问答,不如当初就直接搜索引擎搜索,早解决了。看起来C++开发暂时还是不会被AI取代的,需要的各类信息比Python一类的代码多得多。