共计 2288 个字符,预计需要花费 6 分钟才能阅读完成。
ChatGPT 是一个由 OpenAI 训练的大型语言模型,可以进行对话、文本生成、问答等多种任务。它使用了 Transformer 架构,能够从大量语料中学习语言特征。
ChatGPT 在编程领域的应用
ChatGPT 可以在编程领域有多种应用,其中一些主要的应用如下:
代码生成:可以根据输入的需求或描述生成相应的代码。
代码提示:可以根据用户输入的代码片段,提供相应的代码提示和补全。
故障诊断:可以利用 ChatGPT 分析错误日志并给出相应的解决方案。
文档生成:可以根据输入的代码生成相应的文档。
自动测试:可以根据输入的代码生成相应的单元测试。
数据科学:可以使用 ChatGPT 来自动生成模型和数据集的描述。
不过需要注意的是, ChatGPT 是一个非常强大的语言模型,但它并不是万能的,在生成代码的场景下还需要人工编程和检查。
ChatGPT 是一个语言模型,它不能直接编写代码,但可以根据输入的需求或描述生成相应的代码。
ChatGPT 是一个通用语言模型,能够学习任何语言。所以它可以支持许多编程语言,包括但不限于:JavaScript, Python, C++, C#, Java, Ruby, PHP, R, Swift 等。
需要注意的是,ChatGPT 的能力取决于它所学习的语料,如果语料中没有某种语言的代码,那么 ChatGPT 就不能生成这种语言的代码。
这篇文章会介绍怎样利用 ChatGPT 生成 MATLAB 的代码,实现基于 ChatGPT 的快速编程。
基于 ChatGPT 快速编程
ChatGPT 在编程领域的应用
ChatGPT 在编程领域的应用
一
打开 ChatGPT 网站
怎么能使用 ChatGPT,确实是一个难题,需要两个条件:
会用除了香港外的全局代理
会使用接码
大家自行搜索吧。
ChatGPT 界面如下:
二
用英文描绘问题
虽然 ChatGPT 支持中文,但个人经验觉得用 英文描述,ChatGPT 更能明白你的意思。
这里举一个例子,如果我想让 ChatGPT 生成一个,基于 MATLAB 的,对图片进行 DoG filter 的函数,可以这么说:
这里我直接用的 DoG 来代指 Difference of Gaussians,ChatGPT 照样是可以理解的。
这是 ChatGPT 给出的代码:
代码:
function filtered_image = dog_filter(image, sigma1. sigma2) % convert image to grayscale image_gray = rgb2gray(image); % apply Gaussian filter with sigma1 g1 = fspecial(‘gaussian’, [5 5], sigma1); filtered1 = imfilter(image_gray, g1. ‘same’); % apply Gaussian filter with sigma2 g2 = fspecial(‘gaussian’, [5 5], sigma2); filtered2 = imfilter(image_gray, g2. ‘same’); % subtract filtered2 from filtered1 to get DoG filter result filtered_image = filtered1 – filtered2;end
这里 ChatGPT 对于变量的命名以及注释都是值得学习的,同时 ChatGPT 还给出了这个函数的使用案例和说明:
三
细化描述,让 ChatGPT 优化代码
这里 ChatGPT 给出的函数,默认的 kernel 是 [5 5]。
如果我们想把这个 kernel 变成 函数里需要传入的变量,可以进一步添加描述。
因为 ChatGPT 有上下文的记忆,所以可以直接问:
这里会发现虽然 kernel 变成了可定义的变量,但 ChatGPT 默认这个 kernal 不是高斯的了。
我们可以进一步修正我们的描述:
还非常贴心的告诉我,这个 filter 有什么特点和作用:
修正后的代码:
function filtered_image = dog_filter(image, sigma1. sigma2. kernel_size) % convert image to grayscale image_gray = rgb2gray(image); % apply Gaussian filter with sigma1 g1 = fspecial(‘gaussian’, kernel_size, sigma1); filtered1 = imfilter(image_gray, g1. ‘same’); % apply Gaussian filter with sigma2 g2 = fspecial(‘gaussian’, kernel_size, sigma2); filtered2 = imfilter(image_gray, g2. ‘same’); % subtract filtered2 from filtered1 to get DoG filter result filtered_image = filtered1 – filtered2;end
同样,我也尝试了用 ChatGPT 自动生成 ImageJ macro,在提出一些简单任务的时候,ChatGPT 表现是很好的。
例如生成一段 ImageJ macro,实现打开图片并二值化:
把 for 循环加在里面:
以上两段 Macro 都是可以运行的。但如果再复杂一点,给更多的限定条件,那么 ChatGPT 就会出错了:
这里错在 getResult()函数,函数输入参数应该是:
ChatGPT 只选择对了”Column”,但 row 选错了。
所以 ChatGPT 暂时还不太能完成 ImageJ macro 的正确编写,但可以在它编写的 Macro 基础上进行修改,这样同样省时省力。
最后: