计算机视觉面试题-网络结构相关问题总结-未完待续

news2025/1/21 15:32:01

VGG卷积核为什么取33 ?
VGG使用3
3卷积核的优势是什么?
Resnet 主要解决什么问题 为什么会有ResNet?
深度网络退化的原因
Resnet的针对网络退化提出的残差网络
Resnet网络结构
Resnet网络结构中如何实现的下采样
Resnet50网络结构Resnet特点
vgg16与 resnet152 哪个参数多
Resnet为什么work?
梯度爆炸和梯度消失的原因
BN层的作用
为什么BN层一般用在线性层和卷积层后面,而不是放在非线性单元后
什么是卷积
为什么要引入卷积
卷积的种类
空洞卷积(扩张卷积)
标准卷积
分组卷积
深度可分离卷积原理
从参数量和计算量角度与传统卷积的区别
Depthwise Convolution与Pointwise Convolution
卷积后特征图大小计算卷积层的参数量,计算量
卷积核为什么都是奇数
模型加速中卷积与BN融合的方法
1X1卷积核如何工作的和优势
1x1卷积核的作用
Global Average Pooling
为什么现在不用大核卷积
如何处理不同大小的图片的输入
卷积操作如何加速
上采样、上池化、双线性插值、反卷积梳理
如何计算感受野 (Receptive Field)

VGG卷积核为什么取3 * 3 ? VGG使用3*3卷积核的优势是什么?

在VGG中,使用了3个3x3卷积核来代替7x7卷积核,使用了2个3x3卷积核来代替5*5卷积核,这样做的主要目的是在保证具有相同感知野的条件下,提升了网络的深度,在一定程度上提升了神经网络的效果。
比如,3个步长为1的3x3卷积核的一层层叠加作用可看成一个大小为7的感受野(其实就表示3个3x3连续卷积相当于一个7x7卷积),其参数总量为 3x(9xC^2) ,如果直接使用7x7卷积核,其参数总量为 49xC^2 ,这里 C 指的是输入和输出的通道数。很明显,27xC2小于49xC2,即减少了参数;而且3x3卷积核有利于更好地保持图像性质。

Resnet 主要解决什么问题

大意是神经网络越来越深的时候,反传回来的梯度之间的相关性会越来越差,最后接近白噪声。因为我们知道图像是具备局部相关性的,那其实可以认为梯度也应该具备类似的相关性,这样更新的梯度才有意义,如果梯度接近白噪声,那梯度更新可能根本就是在做随机扰动。
有了梯度相关性这个指标之后,作者分析了一系列的结构和激活函数,发现resnet在保持梯度相关性方面很优秀,(相关性衰减从 1 / 根号(2^L) 到 1 / 根号(L) )。这一点其实也很好理解,从梯度流来看,有一路梯度是保持原样不动地往回传,这部分的相关性是非常强的。

为什么会有ResNet?

在ResNet诞生之前,AlexNet、VGG等这些比较主流的网络都是简单的堆叠层,比较明显的现象是,网络层数越深,识别效果越好。但事实上,当网络层数达到一定深度的时候,准确率就会达到饱和,然后迅速下降。

在这里插入图片描述

深度网络退化的原因

由于反向传播算法中的链式法则,如果层层之间的梯度均在(0,1)之间,层层缩小,那么就会出现梯度消失。反之,如果层层传递的梯度大于1,那么经过层层扩大,就会出现梯度爆炸。所以,简单的堆叠层将不可避免的出现网络退化的现象。

虽然梯度消失/爆炸是网络隐藏层太深所导致的,但是在论文中,已经说了这问题主要通过标准化初始化和中间规范化层来解决。所以网络退化并不是因为梯度消失/爆炸导致的,那网络退化问题到底是由什么导致的呢?另一篇论文给出了答案:The Shattered Gradients Problem: If resnets are the answer, then what is the question?

大意是神经网络越来越深的时候,反传回来的梯度之间的相关性会越来越差,最后接近白噪声。我们知道图像是具备局部相关性的,那其实可以认为梯度也应该具备类似的相关性,这样更新的梯度才有意义,如果梯度接近白噪声,那梯度更新可能根本就是在做随机扰动。

Resnet的针对网络退化提出的残差网络

基于网络退化问题,论文的作者提出了残差网络的概念。一个残差块的数学模型如下图所示。残差网络和之前的网络最大的不同就是多了一条identity的捷径分支。而因为这一条分支的存在,使得网络在反向传播时,损失可以通过这条捷径将梯度直接传向更前的网络,从而减缓了网络退化的问题。

在第二节分析网络退化的原因时,我们了解到梯度之间是有相关性的。我们在有了梯度相关性这个指标之后,作者分析了一系列的结构和激活函数,发现resnet在保持梯度相关性方面很优秀, 相关性衰减从 1 / 根号(2^L) 到 1 / 根号(L) 。这一点其实也很好理解,从梯度流来看,有一路梯度是保持原样不动地往回传,这部分的相关性是非常强的。

在这里插入图片描述
除此之外,残差网络并没有增加新的参数,只是多了一步加法。而在GPU的加速下,这一点额外的计算量几乎可以忽略不计。

我们可以看到,因为残差块最后是 F ( x ) + x 的操作,那么意味着 F ( x ) 与 x 的shape必须一致。在实际的网络搭建中,还可以利用1x1的卷积改变通道数目,其中上图左边是ResNet-34所用到的结构,右图这种类似瓶颈一样的结构就是ResNet-50/101/152所用到的结构。
在这里插入图片描述
而右边这样做有效减少了参数量,两者计算量对比:

左边的参数量为:3x3x256x256+3x3x256x256 = 1,179,648

右边的参数量为:1x1x256x64+3x3x64x64+1x1x64x256 = 69,632

可以看到,我们在一个残差块上就减少了2个数量级的参数,而在ResNet的一系列网络搭建过程中,是将这些结构大量堆叠起来。

Resnet网络结构

(1)起始阶段都经历了相同的conv1和maxpool的过程。
(2)不同深度的ResNet都是由基本残差块堆叠而成。18,34-layer的基本模块记为Basicblock,包含2次卷积;50,101,152layer的基本模块记为Bottleneck,包含3次卷积。

在这里插入图片描述
(3)2阶段堆叠的残差块完全相同。因为输入到输出是56→56,无下采样过程。

(4)3至5阶段堆叠的第一个残差块和其余残差块是不同的。解释:每个阶段均对特征图像大小进行下采样。以50layer–conv3_x为例,仔细思考残差块的堆叠模式可以发现,下采样过程发生在4个堆叠残差块中的第一个,因为这里实现了特征图尺寸从56→28的过程;而对于其余3个残差块,特征图的维度全部是28→28,因此这3个的结构是完全相同的

Resnet网络结构中如何实现的下采样

下采样的卷积实现思路? 在PyTorch中使用nn.Conv2d实现卷积,通常会使用的参数如下: torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, bias=True) 因此实现下采样会用到如下操作(虽然还不够具体,是个思路雏形):
特征图尺寸减半:卷积步长 stride=2。
特征图通道加倍:卷积核数目out_channels=4*in_channels(因为H/2,W/2,特征图缩小为1/4,所以通道数x4)。

下采样的具体实现? 参照上面的思路,Bottleneck的两种模式如下:实现的关键点就是我们需要判断出当前位置需要哪种模式,并设置正确的卷积步长。
在这里插入图片描述

Resnet50网络结构

Resnet 输入 INPUT经过ResNet50的5个阶段(Stage 1、Stage 2、……、Stage 5)得到输出 OUTPUT。

在Stage1 中,形状为 (3,224,224)的输入先后经过7x7卷积层、BN层、ReLU激活函数成为 (64, 112, 112)的大小,然后经过 3X3 的步长为2的 MaxPooling层得到了形状为 (64, 56, 56)的输出。

Stage 2 的输入的形状为 (64, 56, 56),输出的形状为 (256, 56, 56)。

Stage 3 的输入的形状为 (256, 56, 56),输出的形状为 (512, 28, 28)。

Stage 4 的输入的形状为 (512, 28, 28),输出的形状为 (1024, 14, 14)。

Stage 5 的输入的形状为 (1024, 14, 14),输出的形状为 (2048, 7, 7)。

最后加上 average pooling 变为 2048 的特征,再加全连接映射为1000维
在这里插入图片描述

Resnet特点

残差网络在表征方面不存在直接优势,并不能更好的表征某一方面的特征,但是Resnet允许逐层的深度表征更多模型。
残差网络能使前馈式/反传播网络更顺利的进行,可使优化更深的模型更简单。
shortcut不产生额外参数不增加计算复杂度,能简单的添加到叠加层的输出。通过SGD,模型还是可以被训练成端到端的模式。

vgg16与 resnet152 哪个参数多

应该是VGG16参数量更多,因为ResNet152是用了Bottleneck Design结构。
这个结构有两个1 * 1 和一个3 * 3的卷积组成,大大缩减了参数量。

Resnet为什么work?

残差本质是y=x+f(x),激活后f(x)>=0,在求梯度时为1+f’(x),保证梯度始终在1附近,这样两式一起就保证了“就算没学到有用的东西,也不会产生不利的信息,避免了梯度消失”

梯度消失那个的原因是:如果梯度小于1(假设0.5),那多层级连之后(假设三层),梯度就只剩下0.5^3=0.125,成指数形式衰减,很快就到了0附近了,而基于梯度下降的参数更新方法是:新参数=老参数+学习率*梯度,这样的话参数根本无法更新。反之,如果梯度大于1,就是梯度在级连时以指数形式爆炸。

前后向传播角度分析: 在前向传播中,输入信号可以从任意底层直接传播到高层。由于包含了一个天然的恒等映射,一定程度上可以解决网络退化问题。

反向传播时:错误信号可以不经过任何中间权重矩阵变换直接传播到低层,一定程度上可以缓解梯度弥散问题(即便中间层矩阵权重很小,梯度也基本不会消失)。综上,可以认为残差连接使得信息前后向传播更加顺畅。

梯度爆炸和梯度消失的原因

梯度消失与梯度爆炸出现的原因基本一致,一般可能是网络层数过深、激活函数、损失函数设置与参数初始化问题。

学过梯度下降理论就很好理解,无非就是求梯度过程某个值过大过小或链式法则层数过多导致累积效果过大。

梯度消失:隐层过多;不合适的激活函数(也有可能产生梯度爆炸)

梯度爆炸:隐层过多;权重初始值过大

反向传播算法根据链式求导法则,如果某部分比如激活函数求导的值持续小于1,那么随着网络变深效果累积就会导致梯度以指数形式衰减,即发生了梯度消失;相应的如果持续大于1,那么最终的梯度信息会以指数形式增加,最终发生了梯度爆炸。

BN层的作用

(1)加快收敛速度:在深度神经网络中中,如果每层的数据分布都不一样的话,将会导致网络非常难收敛和训练,而如果把 每层的数据都在转换在均值为零,方差为1 的状态下,这样每层数据的分布都是一样的训练会比较容易收敛。
(2)防止梯度爆炸和梯度消失:
在这里插入图片描述

以sigmoid函数为例,sigmoid函数使得输出在[0,1]之间,实际上当x道了一定的大小,经过sigmoid函数后输出范围就会变得很小
在这里插入图片描述
梯度消失:在深度神经网络中,如果网络的激活输出很大,其对应的梯度就会很小,导致网络的学习速率就会很慢,假设网络中每层的学习梯度都小于最大值0.25,网络中有n层,因为链式求导的原因,第一层的梯度将会小于0.25的n次方,所以学习速率相对来说会变的很慢,而对于网络的最后一层只需要对自身求导一次,梯度就大,学习速率就会比较快,这就会造成在一个很深的网络中,浅层基本不学习,权值变化小,而后面几层网络一直学习,后面的网络基本可以表征整个网络,这样失去了深度的意义。(使用BN层归一化后,网络的输出就不会很大,梯度就不会很小)

梯度爆炸:第一层偏移量的梯度=激活层斜率1x权值1x激活层斜率2x…激活层斜率(n-1)x权值(n-1)x激活层斜率n,假如激活层斜率均为最大值0.25,所有层的权值为100,这样梯度就会指数增加。(使用bn层后权值的更新也不会很大)

(3)BN算法防止过拟合:在网络的训练中,BN的使用使得一个minibatch中所有样本都被关联在了一起,因此网络不会从某一个训练样本中生成确定的结果,即同样一个样本的输出不再仅仅取决于样本的本身,也取决于跟这个样本同属一个batch的其他样本,而每次网络都是随机取batch,这样就会使得整个网络不会朝这一个方向使劲学习。一定程度上避免了过拟合。

为什么BN层一般用在线性层和卷积层后面,而不是放在非线性单元后

因为非线性单元的输出分布形状会在训练过程中变化,归一化无法消除他的方差偏移,相反的,全连接和卷积层的输出一般是一个对称,非稀疏的一个分布,更加类似高斯分布,对他们进行归一化会产生更加稳定的分布。其实想想也是的,像relu这样的激活函数,如果你输入的数据是一个高斯分布,经过他变换出来的数据能是一个什么形状?小于0的被抑制了,也就是分布小于0的部分直接变成0了,这样不是很高斯了

什么是卷积

卷积是在特征图上进行滑动的矩阵,它的参数是可学习的,然后计算矩阵跟被滑动到的区域内的像素点进行内积计算,再求和。这种操作可以使得卷积学习到局部特征,并且每个被滑动到的区域之间都共享了权重。共享权重操作使得卷积相比全连接网络节省了大量的参数。

为什么要引入卷积

卷积可以通过共享权重来减少大量的参数量。例如使用全连接层会导致参数量太多,假如输入的图片尺寸大小为 100010003,即 3 百万个像素点,假如全连接层有 1000 个节点,则总共有 30 亿 1000 个参数。但是换成使用卷积核组数为 100 的 55 的卷积,则仅需 553100 + 100,即 7600 个参数

图片中存在重复的特征,卷积可以通过共享权重的方式更高效率地将这些特征学习出来

图片固有的空间特征,如果使用全连接层或 RNN 来学习,则会破坏图片的空间特征,而卷积则可以不破坏图片的空间特征。

卷积的种类

卷积现在已衍生出了各种类型,包括标准卷积、反卷积、可分离卷积、分组卷积等等
在这里插入图片描述

卷积核(Kernel):卷积操作的感受野,直观理解就是一个滤波矩阵,普遍使用的卷积核大小为3×3、5×5等;

步长(Stride):卷积核遍历特征图时每步移动的像素,如步长为1则每次移动1个像素,步长为2则每次移动2个像素(即跳过1个像素),以此类推;

填充(Padding):处理特征图边界的方式,一般有两种,一种是对边界外完全不填充,只对输入像素执行卷积操作,这样会使输出特征图的尺寸小于输入特征图尺寸;另一种是对边界外进行填充(一般填充为0),再执行卷积操作,这样可使输出特征图的尺寸与输入特征图的尺寸一致;

通道(Channel):卷积层的通道数(层数)。

如下图是一个卷积核(kernel)为3×3、步长(stride)为1、填充(padding)为1的二维卷积在这里插入图片描述

空洞卷积(扩张卷积)

空洞卷积主要为了解决图像分割中的一些问题而提出的,在FCN中通过pooling增大感受野缩小图像尺寸,然后通过upsampling还原图像尺寸,但是这个过程中造成了精度的损失,那么为了减小这种损失理所当然想到的是去掉pooling层,然而这样就导致特征图感受野太小,因此空洞卷积应运而生。

空洞卷积也叫扩张卷积或者膨胀卷积,简单来说就是在卷积核元素之间加入一些空格(零)来扩大卷积核的过程。

假设以一个变量a来衡量空洞卷积的扩张系数,则加入空洞之后的实际卷积核尺寸与原始卷积核尺寸之间的关系:K = K + (k-1)(a-1)

其中k为原始卷积核大小,a为卷积扩张率(dilation rate),K为经过扩展后实际卷积核大小。除此之外,空洞卷积的卷积方式跟常规卷积一样。我们用一个扩展率a来表示卷积核扩张的程度。比如说a=1,2,4的时候卷积核核感受野如下图所示:

在这里插入图片描述
当a=1,原始卷积核size为3 * 3,就是常规卷积。a=2时,加入空洞之后的卷积核:size=3+(3-1) * (2-1)=5,对应的感受野可计算为:(2 ^log(a)+2)-1=7。a=3时,卷积核size可以变化到3+(3-1)(4-1)=9,感受野则增长到 (2 ^log(a)+2)-1=15。有趣的是,与这些操作相关的参数的数量是相等的。我们「观察」更大的感受野不会有额外的成本。因此,扩张卷积可用于廉价地增大输出单元的感受野,而不会增大其核大小,这在多个扩张卷积彼此堆叠时尤其有效。

标准卷积

标准卷积:标准卷积(该介绍均已stride=1为例展开)也可分为padding=0,这种情况下输出分辨率为输入-卷积核+1;

padding=kernel/2向下取整数,这种情况是输出分辨率等于输入尺寸。

padding=kernel-1,这种情况是输出大于输入分辨率。
在这里插入图片描述

分组卷积

在这里插入图片描述

将图一卷积的输入feature map分成组,每个卷积核也相应地分成组,在对应的组内做卷积,如上图2所示,图中分组数,即上面的一组feature map只和上面的一组卷积核做卷积,下面的一组feature map只和下面的一组卷积核做卷积。每组卷积都生成一个feature map,共生成个feature map。

我们居然用了同等的参数量运算量生成了g个feature map!!!

所以group conv常用在轻量型高效网络中,因为它用少量的参数量和运算量就能生成大量的feature map,大量的feature map意味着能够编码更多的信息!

从分组卷积的角度来看,分组数就像一个控制旋钮,最小值是1,此时的卷积就是普通卷积;

最大值是输入feature map的通道数,此时的卷积就是depthwise sepereable convolution,即深度分离卷积,又叫逐通道卷积。

深度可分离卷积原理 从参数量和计算量角度与传统卷积的区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/414281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java并发篇二

ForkJoin 在JDK1.7,并行执行任务,提高效率,大数据量才会使用 特点:大任务拆分成小任务,工作窃取,里面维护的是双端队列 package com.kuang.forkjoin;import java.util.concurrent.RecursiveTask;/*** 如…

(PCB系列三)AD六层板布线经验累积

目录 1、布局: 2、创建电源类PWR 3、高速部分可以加屏蔽罩, 4、EMMC和NANDFLASH采取兼容放置(创建联合) 5、HDMI设计 6、就近原则摆放 7、AV端口 8、模拟信号(1字型或L型走线) 9、WIFI模块 10、局…

研究生,但是一直在摆烂学不进去

好的,我来为您创作一首歌曲,希望能够帮助您每天保持自律,专注学习。 《自律之歌》 第1节: 每天都要努力 学习不停歇 独自一人也要坚持 不放弃自己的梦想 读文献 写论文 我们不停探索 穷孩子的荣耀 就在不远处等候 合唱&#xf…

面试手撕算法题--下一个排列

前言 面试官描述这个题的时候,我就感觉似曾相识似乎做过,面完以后到leetcode找到原题恨不得给自个儿来一下子,的确,当时调api爽了,然后呢面试被拷打了啊,我想不起来这个api具体怎么解决这个题目的底层原理…

【非递归】手搓快速排序

欢迎来到 Claffic 的博客 💞💞💞 前言: 快速排序已经带大家实现过了,我们用到的方法是递归法,你知道吗,用循环也可以实现快速排序,来看看吧。 注: 这篇博客属于数据结构…

FE_CSS 基础选择器 字体属性 文本属性 综合案例

1 CSS 基础选择器 选择器分为基础选择器和复合选择器两个大类,基础选择器是由单个选择器组成的,基础选择器又包括:标签选择器、类选择器、id 选择器和通配符选择器。 1.1 标签选择器 标签名{属性1: 属性值1; 属性2: 属性值2; 属性3: 属性…

从0-1搭建交付型项目管理体系流程-- 项目启动篇【宝芝林5】

一. 目标及作用 本阶段主要的目标是签订合同及SOW工作说明书,其里程碑事件为甲乙双方完成合同及SOW工作说明书签字及盖章,以及召开项目启动会。 主要作用是明确项目甲乙双方的权利和义务,以及与甲方及其他实施团队共同制定项目章程&#xf…

有趣的Hack-A-Sat黑掉卫星挑战赛——被破坏的阿波罗计算机(解法一)

国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加,太空已经成为国家赖以生存与发展的命脉之一,凝聚着巨大的国家利益,太空安全的重要性日益凸显[1]。而在信息化时代,太空安…

面试官:你做过什么有亮点的项目吗?

前言 面试中除了问常见的算法网络基础,和一些八股文手写体之外,经常出现的一个问题就是,你做过什么项目吗? 面试官其实是想看看你做过什么有亮点的项目, 其实大家日常做的项目都差不多,增删改查,登录注册&…

如何压缩照片到30kb以下?三个方法

如何压缩照片到30kb以下?随着网络的发展,我们经常要上传一些照片到网上,如公务员考试,教师招聘等,而且要求上传的照片大小不超过30kb,我们如何把照片压缩到30kb以下呢?现在很多平台上传图片时都…

【Arduino机器人手臂和麦克纳姆轮平台自动操作】

【Arduino机器人手臂和麦克纳姆轮平台自动操作】 1. 概述2. 构建 Arduino 机器人3. Arduino机器人电路图4. Arduino Code在本教程中,我将向您展示我如何从我以前的视频中制作我的 Mecanum Wheels 机器人平台,以便与我的 3D 打印机械臂协同工作并自动操作,这也是我之前视频之…

Redis高可用高性能缓存的应用系列03 - 缓存过期淘汰策略LRU、LFU

概述 Redis高可用高性能缓存的应用系列的第3篇,主要介绍Redis缓存过期淘汰策略和内存淘汰策略回收的LRU和LFU的知识点进行说明。 Redis过期键删除策略 Redis设置key时,都会设置一个过期时间,那么当过期时间到了都是怎么处理的?…

C++ 缺省参数 函数重载 引用

缺省参数,我们先看一下什么是缺省参数 首先,这个是我们的需要传参的函数,这里我们传入 1 然后就输出 a 下面我们就看一下缺省参数 我们现在看main函数里面调用fun函数,这里会输出多少呢? OK 这里我们分别输出了0 和 1…

在线文章生成器-文章生成器在线生成

免费自动写作软件 目前市面上存在一些免费自动写作软件,以下介绍几个开源的自动写作软件。 GPT-2:这是由OpenAI推出的一款自动写作工具,它可以生成高质量的文章,其优点在于能够理解语言结构和语法规则,从而生成表达自…

如何建立含有逻辑删除字段的唯一索引

文章目录业务场景分析解决总结业务场景 在实际工作当中,遇到一个场景,就是在用户注册时,名字要全局唯一,当然,我们是可以对用户进行删除的,你会怎么去做? 分析 一般来说,我们可以…

Java语法理论和面经杂疑篇《八. File类和IO流》

目录 1. java.io.File类的使用 1.1 概述 1.2 构造器 1.3 常用方法 1、获取文件和目录基本信息 2 列出目录的下一级 3 File类的重命名功能 4 判断功能的方法 5 创建、删除功能 1.4 练习 2. IO流原理及流的分类 ​编辑 2.1 Java IO原理 2.2 流的分类 2.3 流的API …

5.基于多能互补的热电联供型微网优化运行

说明书 代码相关资源:风、光、负荷场景生成;风电出力各场景及概率;光伏出力各场景及概率;负荷各场景及概率;场景的削减;样本概率初始化;样本削减 风电场风速两参数weibull(威布尔)分布的MATLA…

干翻Hadoop系列之:Hadoop前瞻之分布式知识

前言 一:海量数据价值 二:海量数据两个棘手问题 1:海量数据如何存储? 掌握分布式存储数据的思想。 A:方案1:单机存储磁盘不够加磁盘 限制问题: 1:一台计算机不能无限制拓充 2&a…

tomcat安装与配置

目录 1、安装jdk(官方站点下载 jdk-8u60-linux-x64.tar.gz ) 2、安装tomcat(官方站点下载apache-tomcat-8.5.20.tar.gz) 3、在浏览器上输入http://192.168.88.144:8080 4、写一个启动关闭的服务脚本 5、布置jpress应用 6、浏览器地址栏输入http://192…

真正的ChatGPT平替产品:Claude

01 Claude ChatGPT已经流行了很长的时间了,但是ChatGPT 由于种种的限制,我们无法用上,也有很多的平替产品,但是这些平替产品也有很多的问题。 现在 Claude 出来了,没有任何的限制。 Claude 不用魔法,注…