【今天记录一些学习笔记 有点乱】

  • 今天是乱七八糟的一天随便写写。

1、CNN和Transformer区别:首先他们是两种不同的DL框架,在设计原理、应用场景、处理数据方式上都有显著的区别

CNN

设计原理:CNN通过“卷积操作”在空间上提取局部特征,使用DownSample“池化层”降低feature
map的尺寸,并通过全连接层输出最终的结果 关键组件: Conv2d 卷积层、Pooling层、FC全连接层
优点:高效处理图像等具有局部相关的结构化数据

Transformer

设计原理: 起初是用于处理序列数据,在NLP中广泛流行,通过Self attention 捕捉序列中任意两个位置之间的依赖关系,而不是局限于局部关系,
关键组件:self-attention、Multi Head Attention (MHA)、 FeedForward Neural Network (FNN)、LayerNormlization(LN)(BN)

2、Tensorflow 和 PyTorch面试问答

  • 区别
  • 编程模式 PyTorch 是基于动态计算图的设计,Tensorflow x1版本最初是静态计算图模式(固定计算图 不够灵活),但是后来的Tensorflow x2引入Eagr Execution 支持动态图
  • pytorch相比TF更加易上手,TF有强大的可视化工具TensorBoard
  • pytorch相关问题

1、如何使用Pytorch进行模型的微调(fine-tuning)?
局部微调:加载预训练模型参数后,选择性地冻结部分层,只训练最后几层。可以通过设置param.requires_grad = False来冻结参数。
全局微调:在微调时,可以为不同的层设置不同的学习率。例如,对于新添加的层(如全连接层)可以使用较高的学习率,而对于预训练模型的其余部分使用较低的学习率。
2、如何使用Pytorch在多个GPU上运行模型?
使用model.to(‘cuda’)或model.cuda()将模型移至GPU。
对于多GPU环境,可以使用torch.nn.DataParallel(model)来并行处理数据。它将输入的一个batch数据均分成多份,分别送到对应的GPU进行计算,并将得到的梯度累加。
3、Pytorch的动态计算图如何帮助你更有效地进行模型调试?
Pytorch采用动态计算图,这意味着计算图是在运行时构建的,而不是在编译时。这使得在开发过程中可以立即看到结果,从而更容易进行调试和修改。

  • TensorFlow相关问题

1、TensorFlow的静态计算图与动态计算图有何不同?
静态计算图:在TensorFlow 1.x中,需要先定义计算图,然后在会话(Session)中执行图。这种方式适合大规模部署,但调试相对困难。动态计算图(Eager Execution):TensorFlow 2.x引入了Eager Execution,它允许立即执行操作并立即看到结果,无需构建图。这使得调试更加直观和方便。
2、如何使用TensorFlow的TensorBoard进行模型可视化?
TensorBoard是TensorFlow的可视化工具,可以展示计算图、指标、图像等。通过记录摘要(summaries)并在TensorBoard中加载这些摘要,可以方便地查看模型的训练过程、损失变化等。
3、TensorFlow在工业界有哪些广泛应用案例?
TensorFlow在工业界有广泛的应用,包括推荐系统、语音识别、图像识别、自然语言处理等。许多大型公司如Google、Facebook、Uber等都使用TensorFlow进行深度学习项目的开发。
对比性问题
4、你如何比较Pytorch和TensorFlow在编程模型上的区别?
Pytorch采用动态计算图,代码直观且易于调试;而TensorFlow(在2.x之前)主要使用静态计算图,但在2.x中引入了Eager Execution支持动态图。
5、在API设计和易用性方面,Pytorch和TensorFlow各有什么优势?
Pytorch的API设计更接近Python原生风格,易于上手和快速原型开发;而TensorFlow则提供了更丰富的功能和工具集,如TensorBoard和TF-Hub等。
6、在你的经验中,Pytorch和TensorFlow在设备支持和性能上有何不同?
两者都支持CPU和GPU,并在性能上不断优化。然而,由于实现细节和版本更新的不同,具体性能可能因情况而异。在某些情况下,Pytorch可能更适合于研究和小规模项目,而TensorFlow则更适合于大规模部署和跨平台应用。

3、图像处理、去雾 去噪 ,opencv 简单记录

OpenCV支持多种去雾和去噪算法,如直方图均衡化、中值滤波等。

4、损失函数简单记录和学习

均方误差损失(Mean Squared Error Loss, MSE):
定义:预测值与真实值之间差值的平方的均值。
公式:(MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2),其中 (y_i) 为真实值,(\hat{y}_i) 为预测值,(n) 为样本数。
特点:常用于回归问题,对大误差给予更大的惩罚。但它对离群值非常敏感,可能导致模型过度拟合这些异常点。
平均绝对误差损失(Mean Absolute Error Loss, MAE):
定义:预测值与真实值之间差值的绝对值的均值。
特点:相比MSE,MAE对于离群点更加鲁棒,因为它不会过度放大离群点的影响。但MAE的梯度在极值点处会有很大的跳跃,可能导致训练不稳定。
交叉熵损失(Cross-Entropy Loss):
定义:用于衡量两个概率分布之间的差异。
公式(对于二分类问题):(L = -\left[ y \log§ + (1-y) \log(1-p) \right]),其中 (y) 为真实标签(0或1),§ 为模型预测为正类的概率。
特点:常用于分类问题,特别是多分类问题。它能够有效地衡量模型预测的概率分布与真实分布之间的差异。
对比损失(Contrastive Loss):
定义:用于学习对比性表示,使得同类样本之间距离近,不同类样本之间距离远。
特点:常用于学习有效的特征表示,如人脸识别、图像检索等任务。
三元组损失(Triplet Loss):
定义:通过比较三个样本(锚点、正样本、负样本)之间的距离来学习特征表示。
特点:旨在确保锚点与正样本之间的距离小于锚点与负样本之间的距离,常用于人脸识别、图像搜索等任务。
其他损失函数:
如Focal Loss,用于解决分类问题中的类别不平衡问题;Dice Loss,常用于医学图像分割任务;以及基于余弦相似度的损失函数等。

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值