- 博客(24)
- 收藏
- 关注
原创 人工智能——卷积神经网络自定义模型全流程初识
我们需要定义一个多层的卷积神经网络,先定义一层卷积,对其使用激活函数激活,然后进行池化操作。多定义几层后进行全连接层定义,将卷积后得到的局部特征图像传入全连接神经网路进行整体识别。#定义一个多层的卷积神经网络super(NumberModel, self).__init__()#调用父类的构造函数#进行第一层卷积、激活、池化nn.Conv2d(stride=1,),nn.ReLU(),#进行第二层卷积、激活、池化nn.Conv2d(stride=1,),nn.ReLU(),
2025-08-14 20:21:55
1110
原创 人工智能——CNN基础:卷积和池化
1、卷积神经网络(Convolutional Neural Network,简称 CNN)是一种专门为处理具有网格结构数据(如图像、音频)而设计的深度学习模型。在传统的全连接神经网络(FNN)中,输入的每个神经元都与下一层的所有神经元相连,这会导致参数数量随着输入维度的增加而急剧增长,并且无法有效利用数据的空间结构信息。(更多的只是关注了全局的特征)而 CNN 则通过卷积层、池化层等特殊结构,大大减少了模型的参数数量,同时能够自动提取数据中的局部特征,并且对平移、缩放等变换具有一定的不变性。。
2025-08-13 20:23:07
805
原创 人工智能——自动微分
模型就像 “学生”,参数 w, b是学生的 “知识储备”;训练数据是 “练习题”,输入 x 是题干,真实标签 y_true 是标准答案;前向传播是 “学生做题”,输出 y_pred 是学生的答案;损失函数 L 是 “得分”(损失越小,得分越高);反向传播是 “老师批改并分析错误”,梯度是 “错题解析”(告诉学生哪些知识错了、错多少);最终目的是让学生(模型)通过修正知识(参数),下次做题(预测)更准。
2025-08-07 20:20:12
922
原创 人工智能——深度学习——认识Tensor
想象你在做蛋糕:简单说,Tensor 是一个可以有任意维度的数组,是向量和矩阵的高维扩展(本质就是一个数组),只是数组是编程语言中的概念,而张量是数学概念深度学习阶段为什么首先介绍Tensor(张量),因为在深度学习中,Tensor是数据的基本载体:PyTorch 中常用的 Tensor 数据类型:Tensor创建方法有很多,比如用标量创建、用numpy的数组创建、用list列表创建——都是调用同一个API:torch.tensor用torch.tensor创建张量:注意,此处torch.tensor是小写
2025-08-06 20:07:59
886
1
原创 人工智能——图像梯度处理、边缘检测、绘制图像轮廓、凸包特征检测
例如,假设当前像素点为(x,y),其梯度方向是 0°,梯度值为 G(x,y),那就需要比较 G(x,y)与两个相邻像素的梯度值:G(x - 1,y)和 G(x + 1,y)。如果 G(x,y)是三个值里面最大的,就保留该像素值,否则将其抑制为零。经过前面计算得到的边缘像素点往往比较多,这是因为高斯滤波的影响使得边缘变得模糊了,所以需要对其进行过滤操作,非极大值抑制就是一种有效的方法,在这一步骤中,需要检查每个像素点的梯度方向上的相邻像素,并保留梯度值最大的像素,将其他像素抑制为零。
2025-07-27 20:27:18
1159
原创 人工智能——插值方法、边缘填充、图像矫正、图像掩膜、ROI切割、图像添加水印、图像噪点消除
例如,若要将一幅图像放大,假设放大倍数为 2 倍,那么目标图像中坐标为 (2, 3) 的像素点,会去查找原始图像中与之最近的像素位置(可能是 (1, 1)、(1, 2) 等,取决于具体的距离计算方式,通常是简单的坐标差值绝对值比较),然后把原始图像该位置像素的属性值复制过来作为目标图像此像素的属性值。对于图像中的每个像素,同样选取其周围的邻域(如 3×3、5×5 等),但不同位置的像素在计算平均时所占的权重不一样,距离中心像素越近的像素,其权重越大,距离越远权重越小,权重的具体值由高斯函数计算得出。
2025-07-25 20:21:28
894
原创 人工智能——Opencv图像色彩空间转换、灰度实验、图像二值化处理、仿射变化
OTSU阈值法:cv.threshold(img, thresh, max_value, cv.THRESH_OSTU)或cv.threshold(img, thresh, max_value, cv.THRESH_OSTU_INV)遍历所有可能的阈值,将设当前阈值为t,遍历t到最大像素值减1,分别计算每个t对应的类间方差,使得类间方差值最大的那个t值就是OSTU算法所确定的最佳阈值,将图像中灰度值小于等于这个阈值的像素设置为。cv2.cvtColor:是OpenCV中的一个函数,用于图像颜色空间的转换。
2025-07-23 20:07:07
614
原创 人工智能——OpenCv基础
图像概念数组概念操作示例高度(像素行数)数组第 0 维(shape[0]访问第 y 行像素宽度(像素列数)数组第 1 维(shape[1]img[:, x]访问第 x 列像素色彩通道数组第 2 维(shape[2]访问第 c 个通道单个像素数组的元素img[y, x]或局部区域数组的切片截取区域。
2025-07-22 19:20:15
961
原创 人工智能day9——模块化编程概念(模块、包、导入)及常见系统模块总结和第三方模块管理
模块功能官方文档math数学运算math --- 数学函数 — Python 3.12.10 文档os操作系统接口os --- Miscellaneous operating system interfaces — Python 3.13.5 文档os.path路径相关os.path --- Common pathname manipulations — Python 3.13.5 文档datetime日期和时间。
2025-07-18 21:05:19
681
原创 人工智能day8——迭代器、生成器以及python的模块化
模块化就好比把一个大的玩具套装(整个 Python 项目)按照功能或者类型分成一个个小的积木块(模块),每个小积木块都有自己独立的功能,而且可以单独拿出来使用或者和其他积木块组合使用。在 Python 里,一个.py文件通常就是一个模块,比如有一个文件,里面定义了各种数学运算相关的函数,那这个文件就是一个模块,它可以被其他 Python 代码引入并使用其中的功能。
2025-07-17 19:20:03
999
原创 人工智能day5——函数的位置传参、关键词传参及其可变性和解包操作,匿名函数
2、可变关键词参数:定义函数时用**kwargs,调用时【所有多余关键词实参】会被收集成字典。:传递给函数的是对象的引用(即内存地址),在函数内部修改该参数的内容会直接影响外部变量。1、不可变类型参数:包括:int、float、str、tuple、frozenset等。此处就是将传的(1,2,3)收集成元组,在函数中运用的是对元组的遍历循环进行操作。3、参数默认值:定义函数时可为某些参数指定默认值,如果不传惨则使用默认值,: 传递给函数的是该对象的值,函数内部修改该值不会影响外部变量的值。
2025-07-14 20:23:51
1051
原创 人工智能day4——Python 推导式及 常见语句和内置函数总结
概念:函数是可以重复执行的语句块,可以重复调用作用:用于封装语句块,提高代码的重用性。定位:函数是面向过程编程的最小单位语法:def 函数名function_name(parameters):函数体(实现功能的代码)进行一些操作return 返回值(可选,返回函数执行结果)用于声明一个函数,告诉 Python 这是一个函数的定义。函数名,一个有效的标识符,规则和变量名一致。形参,可以是0 ~ n 个,参数之间用逗号分隔。定义函数执行的具体操作。指定函数的返回值,没有则返回None。
2025-07-11 21:20:20
779
原创 人工智能day3——复合类型
nested = [1,[2,3],[4,[5,6]]] //嵌套列表。r4 = range(10, 0, -1) # 生成 10, 9, 8, 7, 6, 5, 4, 3, 2, 1。r2 = range(2, 8) # 生成 2, 3, 4, 5, 6, 7。r3 = range(1, 10, 2) # 生成 1, 3, 5, 7, 9。nested = (1, (2, 3), [4, 5]) # 嵌套元组。
2025-07-10 20:26:21
893
原创 人工智能day2——Python的基础变量类型之字符串和数字类型
print(float('1.2e3')) # 输出 1200.0,将科学计数法表示的字符串转换为浮点数。print(pow(2, 3, 5)) # 输出 3,计算 2 的 3 次方对 5 取模的结果。2.运算:和整数类似,支持各种算术运算。print(abs(-5)) # 输出 5,返回整数的绝对值。print(math.ceil(-2.1)) # 输出 -2,大于等于 -2.1 的最小整数是 -2。
2025-07-09 20:12:16
562
原创 人工智能day1——【conda环境配置及IDE(vsCode、PyCharm、Jupyter)开发环境配置
python==3.12 numpy==1.23 //下载的时候要加上下载的python版本(后面还会学到numpy的使用还要加numpy的版本),否则下载出来的环境没有相应的包。(1)打开一个项目,文件--设置--项目:你的项目目录--python解释器--添加解释器--添加本地解释器--选择conda环境--在现有环境中选择一个即可。3、环境安装好后可以安装插件,例如中文插件包等等,还是进入设置中,找到插件,安装chinese simple 插件,就是中文版的了。
2025-07-08 19:59:15
1099
原创 day7
/功能一样,多了个n,这个n就是b中的前n个字符,可以选择字符串的长度。//定义了一个2行3列的二维数组,最多可以存放2*3个数组。存储类型 数据类型 n维数组名[行数][列数] = { {},{},{},..... };//定义了一个名为a的字符数组,最多可以存放5个char类型的数据。//定义了一个名为a的整型数组,最多可以存放5个int类型的数据。数组名:数组的首地址(数组第一个元素的地址),数组名是一个地址常量,
2025-07-04 16:03:04
636
原创 day6
先执行表达式1,然后执行表达式2,如果表达式2结果为真,则执行一次循环体内容,接着执行表达式3,最后回到表达式2继续判断,当表达式2结果为假时结束循环。}while(表达式);//do_while先执行再判断,while的话是先判断再执行。break:一般用于循环语句,结束当前循环(多层循环的时候,是结束离break最近的内层循环)表达式1:一般用于给变量赋初值,可省略。表达式3:一般用于控制变量变化,可省略。表达式2:一般用于条件判断,可省略。continue:用于跳过本次循环。return:结束函数。
2025-07-03 09:01:03
167
原创 day5
执行过程:执行表达式1,判断case后面的表达式是否与表达式1相等,如果相等,执行对应的语句块,否则执行下一条case语句。在输入过程中,空格、回车符号称为空白符,当输入遇到空白符或非法数据(数据类型不对应的数据)时,表示一个数据输入结束(字符获取除外)执行表达式,如果结果为真,执行一次循环体,执行完之后不会立即结束而是回到表达式继续判断。case 表达式2: //把switch里面的表达式结果和case的表达式进行比较看是否相等。if(表达式) //表达式最终结构只有两种:真、假,结果为真就执行。
2025-07-01 18:50:13
862
原创 day4
存储类型:4种 auto(自动存储类型)、register(寄存器存储类型)、static(静态存储类型)、extern(外部调用存储类型)%%-- 输出百分号本身 比如要打印90% 则是:printf(“90%%\n”)gcc -c test.s -o test.o(这个test.o叫做目标文件的依赖文件)如果是这样:int a,b,c=20 (其实只给c赋值了20,a,b就是随机值)使用自动存储类型后,变量在内存中由系统自动开辟空间,由系统自动回收。2.如果没有给全局变量赋初值,该值为0,
2025-06-30 18:36:39
476
原创 day3 运算符
特点:在每一个字符串的末尾有一个特殊的隐藏字符 -- 空字符(‘\0’),是字符串结束的标志。那么此时输出b的值就是:b=2 ——>(1)b = a (2)a=a+1。sizeof(a);那么此时输出b的值就是:b=3 ——>(1)a=a+1 (2)b = a。运算符号:= += -= *= /= &= |= ^=负数存储:负数补码=~源码+1(负数的符号位也就是最高位不参与运算,也就是说取反的时候不变)
2025-06-27 16:45:33
611
原创 day2 c语言基础知识
2.按功能将运算符分为:算术运算符、逻辑运算符、关系运算符、位运算符、移位运算符、赋值运算符、递增递减运算符、地址运算符、逗号运算符、sizeof运算符。1、什么是程序:程序是系统可以识别的一组有序的指令的集合,存放在磁盘上,而且是静态的(不用的时候不分配系统资源)-->与之对应的进程就是动态的。命令行中,./a.out就是命令行参数,此处的参数个数就一个所有argc==1,参数值就是argv==”.a/out“例子:10011 = 1*2^4 + 1*2^1 + 1*2^0。
2025-06-26 19:20:01
657
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人