- 博客(238)
- 资源 (3)
- 收藏
- 关注
原创 CNN基础学习
还有一点原因是如果不填充,通过卷积核扫描计算,它边界(上下左右)的元素被扫描的少,信息就有确实,所以就填充(padding)。特点:池化操作是确定性的,没有需要学习的参数。现在感觉,神经网络模型成为了基本单元,或者原理图的元器件,基于这个基础来设计各个架构CNN呀,RNN,transformer等。它将前面卷积和池化层提取到的、在空间上展开的二维高级特征“拉直”成一维向量,并进行综合,用于最终的分类或回归输出。注意:在现代架构(如ResNet)中,常用“全局平均池化”替代一部分全连接层,以减少过拟合。
2026-01-11 13:39:44
223
原创 ANN学习笔记
均匀分布初始化,值在这个区间(-1/√d,1/√d),均匀分布就是在这个区间取任何值的概率相同,平等的,一视同仁。注意,这个d是针对的某个神经元的,聚焦到一个神经元。每层每个神经元都是这样初始化。那就看该神经元输入的权重参数有几个,输入3个那d就是3。上面初始化只是常用的,后续有各种优化或改进,如下改进。均值为0,方差为1的高斯正态分布。每个神经元的偏置如何初始化?全0初始化,使用较多。全1初始化,使用较少。
2025-12-10 10:01:12
264
原创 pycharm2025导入anaconda创建的各个AI环境
PyCharm最新版2025.2取消了社区版和专业版的区分,建议从官网下载安装。安装完成后,可通过"自定义环境"选项导入Anaconda创建的AI框架环境,如PyTorch等。操作时选择conda路径(如anaconda3\condabin\conda.bat),系统会自动同步Anaconda中的环境。文中提供了验证GPU可用的Python代码示例,并推荐参考相关Anaconda环境创建教程。整个过程简单直接,适合快速搭建开发环境。
2025-08-15 07:20:55
839
原创 AI框架与cuda生态及anaconda环境
比如你装pytorch或者tensorflow所需cuda版本是xxx,cudnn版本是yyy,那么你应该先去英伟达官网看下哪个GPU驱动版本支持该cuda版本,或者干脆安装当前时间空间中GPU支持的最新GPU驱动版本,这样理论上基本上所有cuda版本都能装,但是也要看GPU硬件,垃圾的gpu硬件装最新的驱动可能有兼容性问题和性能损好,不过只要不是低端gpu或者过时20多年前的gpu,应该官网都会支持比较新大驱动,需要自己探索。,是具体的AI基础服务实现,比如对神经网络的封装,自动梯度推导等等等等。
2025-08-12 04:40:03
446
原创 面向对象——程序组成与走读
不管是oopc还是oop的语言,只要是面向对象思想,程序的组织就是各个对象交织在一起了。面向对象的程序,整体感觉,就是由各个对象的属性和方法来组成的。满眼看到的就是各个对象。组织方式就是设计模式。
2024-10-27 06:18:07
177
原创 你遇到过哪些技术类奇葩翻译词汇?
英文原版是“default value”,英文意思默认值,中文翻译成“缺省值”。英文原版是“flyweight pattern”,英文愿意是轻量级模式,中文翻译为“享元”。这样重复的对话可能会持续很多年。“老师,啥是缺省值?“缺省值就是默认值。
2024-07-27 12:46:11
394
原创 DP讨论——设计模式怎么来的?
想一想,设计模式的开源是哪里?——碰到这样的事物/问题,用这样一套形式的代码来解决——人类积攒的代码形式(套路)上的解决方案,称之为“设计模式”。才明白,设计模式也不是那么高大上——原来c开发的代码框架上就用了——比如单例模式,模板模式等,只是当时头脑中没有所谓的“设计模式”的概念,这些代码放到我眼前,我也看不见。在这一过程,零零散散的看过大话设计模式什么的,但是总是思想上畏惧,还是觉得高大上还是很排斥。几年前还在搞c开发,觉得设计模式离我太遥远,而且觉得设计模式太复杂太高大上,比较恐惧。
2024-07-11 14:36:48
475
原创 yolov8通过百度飞桨AIstudio平台搭建
百度飞桨AIstudio平台搭建的环境如下:但是需要参照教程自己重新搭建,因为它的环境公开的只能1GB文件,但超过了1GB,只能筛选,所以不全。具体操作步骤,包括免费使用百度飞桨AIstudio平台的教程也是参考如下博客。
2025-12-08 00:10:45
896
原创 无锁化编程——c++内存序使用
在这个回调里呢,计数这个原子变量不涉及同步,因为加了if把同步责任转移给原子变量a了,所以呢,这个计数原子变只要保证++是原子的就行,所以用了宽松的内存序检查relaxed。然后扔给多线程回调处理(触发多线程回调,省略代码),接着等待处理完成标志——这个时候涉及到多线程竞争了,线程1是消费者线程,同步责任的原子变量只有a,所以a在消费者这块用load+acquire。中间强度:consume/acquire/release/acq_rel(精确控制)// 等待:acquire必须(与release配对)
2025-11-08 10:25:34
330
原创 张量的理解
你自己搞个AI框架你也会定义自己的数据类型,为啥?这是你需要的数据类型,你要定义自己的类型,因为这是你的框架独有的数据类型,而且也是核心,也封装了GPU加速的内部调用,而使用的数据类型就是这个数据类型,然后给它起名字叫啥呢?大家都叫tensor,那就叫tensor吧!每个AI框架都会定义自己的数据类型,给它起名字叫tensor——中文翻译成张量。不要试图从字面上去理解,要从其诞生上来理解。tensor——张量,不要被这个概念吓住。
2025-08-05 08:01:06
111
原创 epoch和batch_size
想象自己是模型,摆在你面前的一块蛋糕(训练集),你一口吃下多少数量是1个batch_size,也就是迭代一次,然后你吃n口才吃完这块蛋糕,此时就是一个epoch,迭代了n次。你又不得不吃,刚开始挺饿的,后来饱了,再吃就吃不下了,吃腻了,再吃就是过拟合了!所以不是吃的越多越好,吃的刚刚好有精神,看的准,泛化能力强,否则就过拟合。然后人类又给你同样的蛋糕:吃吧,你!
2025-07-08 21:29:17
132
原创 spdlog日志格式化
首先是根据格式pattern查找对应的格式器,一一扔到pattern_formatter的formatters_的vector中。那么这个中间转换的过程就称之为日志格式化,由谁来做的呢?pattern_formatter这个类。如何实现这个日志格式化?——就是如何按照日志格式生成为具体的日志?它的名字是由pattern和formatter组成,意思就是处理pattern的格式的。很贴切,它的职责就是根据pattern来格式化日志的。pattern_formatter是个很关键的类。
2025-05-23 12:59:28
289
原创 1.ZLMediaKit-EventPoller类
eventpoller类就是干活的牛马。它是个线程类——对线程的抽象,线程运行的实体所在类——实体入口runLoop,它也是线程创建入口(else分支创建该线程,if是线程运行实体),这个方法一物两用。它又自带很多内容,比如和别的线程如何通信呢?通过管道,所以每个eventpoller对象都有自己得管道。所以管道是它的组成部分,它们是组合关系。
2025-05-12 09:39:30
634
原创 ffmpeg面向对象——函数接口命名规则探索
虽然都是c语言,但都是采用的面向对象思想,然后又考究了其他oopc源码,也是同样的规则。所以这种规则是oopc的通用规则吧,或者说共识。
2024-10-15 12:21:10
216
原创 ffmpeg面向对象——priv_data设计原理探索
可以在ffmpeg一些数据结构(oopc的类表示)中见到“void *priv_data”这种形式的成员,它有啥作用?
2024-10-08 10:34:46
548
原创 ffmpeg面向对象——AVInputFormat与URLProtocol啥关系
前者是应用层协议,比如rtsp,http等,后者是实际协议的底层承载体,比如open,tcp等。先是匹配输入格式,然后再匹配url协议类。
2024-10-08 08:14:23
471
原创 demux和mux基础理解
说人话的话,那就是从理解的角度看,mux就是融合数据或复合数据,demux就是分离复合数据。开源项目里常把demux或者mux作为前缀或者后缀,比如live555,ffmpeg等。其实还有一种理解,mux就是多合一,放到数学上叫“降维”。demux就是还原,一分多。在流媒体里,mux被翻译成“复用”,demux被翻译成“解复用”。在数学软件(matlab等)或者流媒体开源项目里,常见到它们的身影。
2024-10-05 19:44:34
1442
原创 ffmpeg面向对象——拉流协议匹配机制探索
如果让你写个拉流程序,输入的url,如果是本地文件路径,那就读取本地文件,然后输出一帧一帧的音视频数据,如果是网络流媒体传输协议比如http或者rtsp等,那么也得实现。
2024-09-29 20:28:11
1184
原创 ffmpeg面向对象——参数配置机制及其设计模式探索
ffmpeg支持很多配置——拉流配置推流配置等等——那么庞大的繁杂的配置项,如果是你,该如何实现呢?
2024-09-15 13:41:33
979
原创 ffmpeg面向对象-rtsp拉流相关对象
oopc中,这种继承是个老套路,也是经典讨论,linux中,还有rtthread RTOS的内核实现中常用这种套路,这个应该是oopc的经典。可以看到它实际分配的内存是FFFormatContext 然后返回的地址是AVFormatContext *类型的,这就是典型的oopc的。可以看到第1个成员就是AVFormatContext 类型的,avformat_alloc_context返回的就是这个成员的地址,其实。所谓接口继承,就是创建子类返父类的地址,这是多态实现的基础。
2024-09-08 12:57:01
905
原创 0.ffmpeg面向对象oopc
这让我想起来一件好玩的事,有些搞linux内核驱动的只会c的开发人员不知道linux内核是面向对象的,他们看到智能指针,继承,this指针也不认识。因为查rtsp相关问题,接触了下ffmpeg源码,发现它和linux内核一样,虽然都是c写的,但是都是面向对象的思想,c的面向对象称之为oopc。这就是怎么说,这个代码是c写的没错,但是它采用的思想是不受非c面向过程的束缚,非c半生思想——面向过程。也就是说采用的思想超出了这个编程语言的伴生思想,那就不能仅仅会这门语言了。
2024-09-06 08:59:34
610
原创 DP讨论——设计模式分类
结构型,结构是啥意思?就是你们之间的关系。讨论的就是类与类之间的关系,什么适配器啥的属于此类。它们是组合或继承关系等。行为型,感觉就是要干啥的意思,从干什么事的角度说起。访问者——我要访问你,观察者——我要观察你等都体现在做的什么事上。创建型,不用说就是用于创建对象的设计模式,啥单例模式,工厂模式等属于此类。分成啥创建型,结构型,行为型等,啥意思?
2024-07-18 19:50:36
170
原创 DP讨论——适配器、桥接、代理、装饰器模式通用理解
适配器模式和桥接模式,实现上基本没啥区别,怎么区分?只能从上下文理解,看目的是啥。它们,我左看上看下看右看,发现理解可以这么简单:都是A类调用B/C/D等类的方法。它们的关系采用组合关系,也就是基本是A类里包含BCD等类,然后实现方法来调用BCD等类的基类方法。
2024-07-14 20:10:56
280
IAR下建立STM32f103zet6工程基于野火霸道开发板
2019-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
4