01:25
哎,孙润发来了吗?
02:04
那咱们就先开始了。咱不等他们了。都能都能听见吗。喂,能听见我说话吗?嗯,行,那我那我就开始了。那这次咱主要来讲一讲那个的一些基本的用法,然后咱先从的基本数据结构来讲起。嗯,S的话,嗯,一般先嗯安装的话,安装就很简单,就是从网上从那官网上找一下那个安装教程。嗯,我记得他有一个。他有专门的那个教安装的,这个很简单,直接一个命令就可以。
03:01
我我就嗯,我就不专门说这个了。安装安装非常简单,比辅简单多了,就是一个命令的原因,就是一个命令的那个,就咱直接就从语法开始说起,然后进入的话。首先要先引入这个最关键的这个包,这个包,然后它里边最主要核心,核心的那个数据结构叫做张亮。Ten也是张亮,然后它也张亮,Ten直接叫直接就就是那个就是ten floor,然后ten的话,它里边那个张亮,它也叫tener他的张亮,嗯,建建一个张亮。可以这样来。Answer。然后里边随便存上几个一个数组。这样就可以把一个非常简单的一个列表给它包装成一个包,包装成一个张亮。
04:00
打印一下,看一下。像我们的这个数,这个数度已经包装成了ER,然后这个ter,它是一个高维数度,它不仅可以,呃,它不仅是这样一维的,它也可以是很很高很高维,比如。比如。就是创建一个一个色,然后第一个,第一个是那个一下那个一下,你说有事有事不信。直接我帮我帮了一个没关麦的静下音了。啊,这这上面是参测最简单的一种一种。呃,一种方式。然后其他创建的方式有很多,那个它基本上和派差不多,还有一种就用用来创建随机数的一个方式。
05:09
创建一个随机的,这个是随机一个正态分布,里边是传入创建参形状,比如说我们要创建一个十乘十的一个参。你打印一下。那打一下这个二看看。可以看到创建一个十乘十的一个一个一个一个张量。然后通过这种。这个点可以查看它的形状,这个也是在后边写代码非常重要的一个东西。可以看到它的形状是十乘十,然后我们一般在训练的时候使用,呃,也是使用特来进行作为一个数据的载体,比如说我们要输入一张图片,这个图片就是这个形状,大概是这个样。
06:03
那我随便我随便创建一个,它的形状可能就是这样,第一个参数是size大概是32,第二个是通道,通道,然后第二尺寸224。八四。这样就创建了,就就呃这样一个形状就是。呃,传入神经网络里边一个,传入神经网络里边的那个套的形状。然后这样参测,其实也可以直接把它,也可以直接查看一下,直接把它转成一张图片。嗯。那先等会再说那些东西。然后这个它还有个好处呢,就是可以它可以自动计算,它可以自动计算梯度,比如说。我创建两个,创建两个参,一个是X等于。然后我们给他传个12345 12345。然后给他设置,给他设置需要需要梯度,给他设置如果不生的话,它默认是就是就是不会计算它的梯度。
07:09
然后再一个XX1。起来。创建一个我直接从这边复制过来,我就我就不直接写了。啊,这要注意一下,这个一般一般都要让他写成浮点型,它才可以计算,才可以计算那个梯度,不写成浮点型的话,它一般是没法计算梯度,他会报错。然后怎么计算梯度,我们现在创建这两个,这两个算是我们的那个输入的变量了,然后一个Y等于三提二。X2。那比如说我们随便定义一个式子,三乘以X加X。然后,然后要计算这个。Y,我们要计算这个式子的跟它的梯度。
08:03
这个时候我们需要先先对一个Y取一个。取一个总和,因为计算的就是求导,求导一般都是对,都是对那个对对来说的。对吧,我们导就是对标量来说,没有说对一个对一个量,或者说对一串的导,然先把它变成一个量,先把它变成一个标量,然后才可以进行导。然后这样的话,这个式子是不是就变成了。呃,就变成了。我我找个,我找个。Word。这式子就变成了三乘以X。加上。那加上X2。
09:00
然后。然后对,然后对它进行一个叫,然后把它转化一下就是。4/11,然后。用画图吧。那公司还挺难打。就是1/4。然后累加。I等于一。嗯,然后括起来。三。乘以。X。加。加X2。啊,这里还有个角标I。对不对,嗯,然后把它给展开的话,就是,呃,就是就是四分之。3/4的1/4的三。
10:02
X。X1。加。X21。对吧。然后再加。1/4的。三。X小二。再加。X2。啊,小二。然后后边就不写了,然后点点点点。然后这时候我们如果要求这个这个东西的梯度,它要怎么求呢?是不是就等就等于这个这个叫随随便写一个叫L吧。L等于这个式子,如果要求这个XX小于的梯度,那是不是就是这个?那这个什么符号忘了啊这样。X1。对吧,那我们我们口算一下也知道这个玩意儿应该等于3/4。啊,也就0.75。然后后边我们看到这个后边的这个X啊,这这个东西它也是0.75,就是就是每一个。
11:07
呃,这个每一个XX这个张量,它里边每一个值的元素,每一个每一个元素梯度都是0.75。对吧,然后我们看在代码里边怎么求。这是这是,呃,对外这是,这是王总的,这是王总的式子。那我看下啊。啊对,这不是some,是是刚才,刚才那个式子应该是命。然后对外。Backward就是反向传播。反向传播实际就是。然后六七梯度,然后。嗯。反向传播之后,诶,我看一下。
12:02
啊,反向反向传播之后,这时候梯度就已经都都被保存起来了,我们打印一下这个X的梯度。你稍等一下,我看一下这个是怎么回事啊。Out,不?然后这样才才可才可以求梯度,然后这个al这个值就是一个标量。啊,然后我们求这个X的梯度。你看都可以看到,这都是0.75X,就是这个东西跟我们刚才手动求是一样,都是0.75,也就是说我们直接用backward可以非常非常简单的实现这个求梯度的操作啊,这个当然只是呃,我们到后期不用显示的来写这些东西,它都会自动自动去去调用。
13:18
然后关于张亮,他还有一些其他的创建方式,比如说。嗯,直接刚才刚才说的这个是。创建随机数的那个方式来创建这个里边写上它的形状,就像随便写一下形状就可以。比如说这24乘56这样的形状,然后这样创建,这样创建的它是一个标准,正态分布标准。标准正态分布的一个张量。呃,然后还还有其他的一种方式,其他的比如说。这个是。均匀分布也是传入这个。这个可以。
14:01
他们它的形状。嗯,然后这些张亮怎么跟我们的图片给它结合起来,其实我们图就是一个一个像素一个像素,一一个一个像素组成一个非常大的矩阵。啊,我们随便,我们可以这样来模拟一张图片。比如说。等于我们随我们随机处,用随机处来创建一张图片。那它这个通道是三,然后宽是24。24 24。我打印一下看看,我把他们都删了啊,都注视角。然后妹子。看有没子看一下呃,看一下有没纸的形状,看看是不是。
15:01
应该没有问题吧?嗯,点错了。啊,就是一个324,光看这形状,感觉它就是一张图片,然后我们可以通过一些其他手段,这个的话不用。不用太在,不用太在意。我们我们我用一个。方式,把它变成一张图片。啊,我直接拿到,直接拿这边东西来,我就不写了。啊,现在这个这个图片,现在这个东西已经被转化成了一个PL图片了,然后我可以打印一下这个图片怎么是什么样。
16:05
从里边直接复印过去。嗯,可以看到这张图片,这个图片就打印出来,这是一个用正态随机正态分布随机数生成一张那个乱七八糟的图。然后这个就是我们的,然后。这个是基本的参法,然后下面我们来讲一下这个开最重要的一个数据集,就是核心的数据集。我还是从这从这里写吧,我把上面也注释掉。嗯。数据集的话,它一般我们一般都需要自己自己来自己定义一个数据,数据集的类。
17:03
怎么定义哈,我们先先来写一下class等于我我用的图片,我用的图片是这个人民币的分类。我找一下那个。稍等,我找一下那个文件夹在哪。0249。啊,对对。是这样,是这样一些数据里面都块人民币,嗯,可能比较老的人民币。这是一,这是一,这是一元的,这是100元的。然后现在我们要把它用数据集的方式给它加载出来。这个我们一般是自己写一个类来加载。然后这个就叫RMB。Data set需要那个set。这个类是的内置的。需要引入一个。这个不。需要引入这个包。
18:02
嗯。然后我们需要实现它里边三个函数,第一个是这个。函数。然后想。先不写吧,然后第二个是他的那个。Get item就是获取获取图片的一个。函数,通过这个函数我们来返回图片。然后还有一个就是那。呃,Return这个也先不行,就返回这个数据集一共有多少张图片,然后我们先从这个。构造函数开始写写,这里边主要写一些基本的成员变量。啊,我先定义一个self点。嗯。就是亿元人民币的那个。那个呃,这个你给改一下哈。这个这个构造函数,我们需要传入一些值,第一个值我们先这样来写,就是一元人民币的图片路径,然后还有就是100元人民币的路径。
19:08
然后还有一个是。呃,这个叫。一般都会要用的,我我看一下那个之前写的。它的作用我们等会再讲,但是它非常非常好用,它是属于图片预,图片预处理的一个,呃,一个类,一个包,可以对图片进行预处理。啊,先来写一下这个。那直接复制过来,就不一个一个手敲了,你能打上电脑。可以那个读取,读取所有的文件,可以用这种方式来读取。这个叫葛宝,这个包非常好用,就是里边写上这个图片要读取,要读取的那个路径。
20:00
啊,然后可以用用这个星花来匹配所有的图片,这样的话,它会返回一个图片的所有的这个所有图片路径的一个列表。这个是。啊。一元。人民币的所有。听不见。这是100元的。啊,然后我们在。要把他们两个合在一起。这样他们这样这这就构成了所有,这是一个所有数据,所有数据的一个数据集。然后再创建一个。啊,这个就相加就可以了,再再创建一个label,就是他们的标签。
21:01
我们来设定那个用零来代表那个亿元人民币。刚才乘以。对吧,对。嗯,然后用一来代表100元这个这个分类。哎,好了,这样的话,这样的话,这个标签跟这个标签它的每个元素都一一对应起来的。对吧,你们这这样想想可以,他们都是他们的标签和这个图片是规定是一一对应起来的。嗯,然后最后一个这个就。先放这里。他会用。呃,然后这个get item,我们在在调用的时候,它。那个什么东西,Ind不。
22:00
这个主要实现就是者我。我现在获取一个图片,这个index是传入,是第几张会传入一个index值,一个索引值,然后让获取哪一张图片。我们下来获取,你们就pass了。你们pass,因为上面上面这些初始化都是一些路径,没有把它变成图片,等于。然后拿的值。是。然后这样我们就拿到了一张图片和一张和和这个图片标标注就是是零还是一,然后现在我们要把这个图片给读出来。Image等于。
23:02
那种用P组,一般那个套是跟PKK那个性比较好。我们引入一下PP。然后。Open把这个把这个pass放进去就可以,然后这时候读出来的图片,它是一个,它是一个呃,一个PR格式的图片。把它转化成那个。把它转换成RDB格式。嗯,然后我们。把图片,把标签都给回来。那就可以了。
24:01
啊,然后这个就更简单了,直接return learn,点这个随便一个就可以,这两这两个长度是一样的,随便放任意的一个长度就可以。然后这样我们就定义好了一个。人民币的一个一个数据一个类。然后我们怎么用它,我们来。怎么?那用它的话,它需要这是一个data set,然后需要把data set传进data load。先先来创建,将来创建这个类的实例啊,够意思。那先来创建一个类的实例来看。你看我们把这个。那再等下。
25:02
把值给放进来,把这个。文件夹的路径给放进来。这个是一元的文件夹路径,然后这个是100元夹路径,然后最后这个传的是什么?传的一些图片预处理的方式。在这里定义一个图像预处理的方式,我先把它复制过来。嘿。把这个包引进来。嗯。这个预处理的方式是什么?就是呃,我们可以从这里定义一些图片预处理的方式,比如说这里是对图像进行把图像给全部成22224乘24那么大小,然后这个center就是从中心才切出来一个100乘100大小的那个区域。
26:02
这个。个均值一个方差,均值方差是一。标准化。那我们把这个。呃,这是一个这叫预处理的组合,就是我们也可以单独单独把这一个单独拿出来,比如说我们。我们可以单独拿出来一个这个东西。啊,然后直接直接传入一个值。直接传,直接传入那个一张图片,然后进行处理,然后也可以把多个。也可以把多个这种东西组成一个,然后然后直接传这个东西。直接给他就这个图片就会经过,就会对这所有的东西都给都给处理一遍,他会组织一个一整个流程。
27:06
然后这个是定义了一个,嗯,是二,然后中心100,然后。把它转化成。再进行一个标准化的一个过程,然后传给这里,然后我们需要再把这个再修改一下。格式不一样。之前用这个东西来接。然后返回这个东西。啊,这个是。呃,这个这个就是我们定义了一个,我们先实例化了一个data set类。然后我们再来。再来实例化那个。
28:04
嗯。直接也是直接复制过来的。非常简单的一句话。啊。啊,然后也这个也是一个内置的类,然后直接引入他名字就可以。可以看到直接直接引名字,这里在这里一个data set一个data。那直接用。这里传入三个值,一个是data set,就我们之前定义的data set类。然后另一个值是我这接写的二也可以写成写多少东西,写17吧,因为不常用,然后比较有对,然后上就是打乱,是否得给图片进行一个打乱。然后定义好这个之后,我们就可以来这个图片了。啊,我们来遍历一下这个I。
29:01
直接这样来这个这个函数什么意思,这函数就是。就是每次返回的时候带一个索引,而没有其他意思,就如果不加这个东西,只有加上它的话,它额外返回一个I引,就不用我们再手动写一个I等于零,然后里边再写加加。在这个在便利之前,我可以打印一下这个data,其实是它它它是有长度的。我先不管那些东西。我们先。打印一下这个。先打印一下这个这个data,看看他是他到底长什么样。啊一一直在跑太多了,我们加个不会只要第一批,只要第一个就可以,只要一个白下来就可以。
30:06
啊,看了这个这个。反正反正它是有个有个长度的,这个可能不太准。那先不管了,反正这里这里是那个是便利整个图片数据集,然后这个是。的那个,呃,是里边长的样子,它的数据。这是图片,这是图片值,因为经过标准化之后,他们都是那个均值为零,方差为一的一个一些值。然后可以看下这后面它是它的label,我们数下是不是正好17个,一二三四五六七八九十,11 12 13 14 15 16 17啊,刚好17个,就返回了17个图片。嗯。这样的话可能看不太清,看不太看不太明白,然后我们。来观测一下这个这个到底是个什么东西。
31:05
我们看一下它那个类型,它是一个什么类型的东西,什么类型的面料。哎,把上面给。不是有。它是一个list,我看看它是一个list,一个list。啊,然后。冰塔。是一个什么?零它是一个,它是一个。可以看这是一,它是一个色,它是一个,它是图片。它应该是图片,它应该是所有图片,然后我们可以打印一下这个。你看到是十七三一百一百,你看这三是17,说明这塔零就是17张图片。然后后边这是它的通道数,三通道有RGB,然后后边是它的那个宽高尺寸。
32:02
那么一的话肯定就是这个,一的话肯定就是的。你不用打系统,直接这就可以。再来。可以看到它是十,呃是17个那个标注。呃,然后我们还可以查,我们我们出来这17张图片,我们取十张图片里边一张,查看一下到底长什么样。就就网。对。就是从图片里边取第一张。啊,然后我们来定义一个,将将那个ten转换成PP那么一个东西。P等于。里面它有一个专门的一个一个。
33:02
P image的一个一个一个类,这是一个类,然后我们直接调用这个类来调用,直接调用这个类。啊,把以妹子这个参传进去了。它就变成一个一个PR格式的东西,然后PR格式的东西它可以直接用来可视化。就是一个。直接没受受的时候把这个imager放进去。然后。标题。就可以查看这个图片长什么样,看他会不会报错。嗯,没有报错。你看这个图片。这是这是一批图片里边第一张图片从中间,从中间截了100个像素,可以看到中心截取100个像素,然后我们输入。我们输入网络的图片,大概就长成这个样子。
34:00
啊,我们如果想要其他的那个修改的话,也可以直接从直接修改这里可以,比如说我们不想要中截取,我们想要随截截取。有一个叫。C然后我记得32乘32,我就用32后边后边例子是用32来做。然后再来一下。哎,赵鹏,我问你个问题啊,能听到吧啊,能看下你这个对像咱们一些传统的模型CN啊,还有什么这些东西,它是自带库还是得自己写啊。啊,有自带库吧,我记得好像是有自带库的,但是一般都自己小。啊,那现那个他就比较麻烦了嘛,当然也可以自己写嘛,但是嗯,你自己是有很多种自带的哦对对一个视角还给我,还跟我还跟我说过这个有个库。啊,我咱们还是希望你比如说他有自带的库什么的,我们用起来就方便,改起来也方便吧,是吧?啊他肯定肯定有,就是我一般不用忘了这个一搜就可以查到,非常非常简单,很好用。
35:10
嗯。啊,那那我继续啊,这个就是对图像一个加载,加载数据集的那个一个方式。然然后加载这个数据集,我们直接把这个把数据只一个网络里就可以,就可以让他练了,然后就是后边部分,我们会再讲后边部分,然后我下。能搭建网络,然后。那这个保留着我们。嗯,那。搭建网络。啊,我先。我之前写的给拿出来。这是一些一些必备的包,很多很多这种包,那么搭一个非常简单的网络。
36:03
啊,就是非常古老,非常古老,将近50年了嘛,一开始用来识别手写字体的一个网络,非常简单。首先要。那个网络搭建首先要建一个类,然后要建一个class类,然后它需要继成点毛,所有的网络,跟网络相关的层啊,还是容器啊什么的都是要这个。然后第一个是它的那个要构造函数。就要输入,要输入一个那个分类类别,我们就一个非非常简单做一个二分类,对人民币做做二分类的那种网络。然后Li结构的话,我们从这里可以看到。这是这是的结构。这是输入,输入第一个是一个一个卷积,一个卷积把它卷到通道为六,通道是把卷到通道为六,然后28入32乘32 28乘28,然后再进行一个上采样,就是你问大家知道通道的概念吧,你找找个同学问一下。
37:09
啊。因为张珍什么的问他们啊,那个张珍,我之前给给他稍微讲过一点东西,那个孙亚发在吗,孙发。啊啊。嗯。因为咱我看里边有好多二零级的。对,孙孙发在吗?吃完饭。他不在啊。哎,这小子开着什么溜来着,那那那张老师你说那个通道吧。多少人,嗯通道,嗯通道就是。嗯,就是有个图片,它如果是RGB的话,它就是三个通道,因为它是三三层那个红红红绿蓝三层叠起来的那个意思。
38:06
三三层,三三层向负嘛,就是那到后来为什么会转成六个通道呢。为什么会转成六个通道呢?到到这一个经过转机的话,怎么变成六个了。嗯。不知道呀。转转成六个的话,是因为有六个,你跟他们讲一下是吧,怎么说怎么个转成六个的。改成六个的话,就需就需要对一个图片用六个卷积盒进行进行卷积,然后就可以得到一个六通道的非常map。有有几个卷接盒就有就能卷出来几个通道的那个特征,呃,特征图。什么是软件盒,他们都不一定清楚,这个这个这个要再讲的话就就太啊是吧,所以说大家在学习的时候要把这些东西细节搞清楚,人家一说你能明白为什么是六个短集合,因为前面是三个三个通道。
39:06
这样三个通道的话,它有六个核六个转机盒,就是就就就就这六个转机盒呢,都对这三个通道呢进行转机,最后呢,就得出了六个。六个通道。啊,这个六个通道就不具备物理意义了,是吧,就是不具备像牙是RGB红绿蓝这样的一个东西了,它是提取出来六种特征,应该是这样的一个概念是吧?就是六种那个饮食特征嘛,没有具体可以理解为你有六个这个视网膜,就是说六个这一个叫什么来,就是你的视神经对吧,一个视神经是转,假设是转横向的,一个是转侧向的,一个是什么?就是说提取不同的特征是吧,就是这个意思,大家一定要,要不然的话,赵鹏讲你就跟听天雷一样,听天书一样。嗯,行,你继续吧,赵鹏啊行,然后卷出六个这个六六特征图之后再对每个特征图进行一个,这个叫sub下采样,就是其实就是进行一个二乘二的最大化。
40:07
把它的尺寸缩小成缩小一半。然后对缩小之后的这个特征图再进行一个卷接,把它卷到16通道上。然后再进行那个。下采样就是再进行一个最大化,然后最后把它放一个链接的网络里,然后最后去分类。这是一个,这是最简单的一个最简单的神经网络。这个他是50年前一个叫叫什么人提出来,专门用来识别数学字体的,然后精确度还挺高,然后后来基于他又发展出来了那个叫什么al ne。那怎么读ne al Alex Alex这个,你这个是,你这个是谁发表的那一个是吧,你这个就是。啊对,你这个是那个什么,呃,第一个第一代的C叫是吧,后来叫Alex Alex ne2012年的那一篇论文。
41:08
对,这个这个神经网络就是就是老祖宗级别的。对,第一代第一个。嗯,而且大家看它非常小,为什么呢?因为大家他是九八年是吧。提出来的那个时候计算机大家想想吧,他年前他再再算,他就算不出来了,应该是。应该是九零年附近啊,对不不是20年前,是那个不是50年,二十二十年前,或者是二三十年前吧,当时那个989年或者什么那个那那个时候。对对对,行,不管他,不管他哪个年代,反正他不好用就对了。嗯,然后这个是,呃,这个是写它的那个构造函数,这一句是必要的,就是把当前这个,把当前这个类给注册到主类里边,这句话它实际上是一个那个。
42:00
一个套一个框架就都得写。就是把这个类名传进来,然后这好,这是一个固定的一句一句话都得写,没有嗯这不是嗯这不是那个什么嘛,这不是Java里也有这种写法手法相当于把这个东西传到类中嘛,是吧,你是集相当于注册,相当于注册一些啊。啊,然后我来定义定义一些词。定义,一个卷积层就是第一个卷积层,就是图上看到的第一个卷积。一个感觉就是仔细听哈,过一会儿听完之后大家必须懂啊,过一会我会一个个去问,别到时候是吧,什么叫转基层,大家不明白就问啊,像我都不不明白我就问,你们还不问啊。先继续,嗯,啊,第一个卷积这个参数,参数第一个是输入通道数,就我们输入一个三通道,然后输出一个六通道非常map,然后这个五是非常map,不是那个卷积,那个感受就是大小五乘五的卷积。
43:01
从这里去啊?感受。那那等会再说吧,那好的好的。呃,我看一下在图上,在图上应该是看不出来这个卷积和是五乘五的,然后其实上算一算是可以算出来的。也就不算了,这个直接从论文里边扒出来,那个数据直接写上算了。然然后self第二个第二个卷就是。从六到从六变到16。那卷接盒卷积核大小还是五?然后下面这个是就该就轮到分裂器了。C等于。它的输入大小,它输入大小应该要跟这个输出的大小的原值应该是一是一致的,我们从图上可以。可以算一算到这一步。
44:02
到这一步的时候,它的那个总共的那个像素数就是。16乘五乘五有这就这么多像素了。然后把它放到。把它降为到降到这个一百二降还上面不知道,反正就这样。FC等于N。再从一百二降到84。你要问这些参数是怎么来的,这些参数是作者自己做实验得来的,然后我们也不管它参数怎么来的。然后最后是最后最后一层那个简介。最后一层那个。你这干嘛了?嗯。嗯,是从84到分类类别的。就是我们要分多少类,就直接让他最后最后输出那个是多少多少个元素就可以。
45:03
然,我们在定义好了所有需要的元素,然程。那这个,嗯。这个就是我们要输入,要输入图片,或者是我们对网络输入,这个就网络输入。那我们调用这个这个网络实际上就是调用了forward,然后然后反向传播,它会自动调用,不用我们管。我们来看一下它是怎么来的。先是X经过,经过这个卷积,经过第一个卷积。另外第一个点接之后还要进行一个激活,当时当时用的是不是忘了,反正现在基本上都有。来激活。然后经过激活之后,需要再经过这个最大石化叫po用2D2D。
46:07
输入,再输入卷积,再输入那个化那个大小二二乘二的。我看是这么写的。最后说出来就是这个东西,然后再再继续再继续来,对啊。嗯。二。然后再激活。然后。在吃饭。啊,乘法号还是二。然后到这里来,他就已经就已经那个。
47:03
这个叫卷积的部分就完成了。下面就就要把它给扔进这个这个件里边,件它是一个线性层,就是我们常见的那种,我们常见的那种那种神经网络,就是之前那神经网就这样一个圈一个圈这样画出。其实你看了吗?它这个叫laner,不是Le吧,Lener应该是啊啊对对对,反正就是线性,什么意思,它其实就是个线,一个神经元其实就是一个线性吧,大家看我写的那个PPT,你看了吗?赵鹏,我其实就把那个线性回归啊,呃,就放在那个神经网络的第一章了,就是想表达这个意思,其实我们一个神经元就是一个线性函数。啊对,它就是一个那个,它就KX加B转接,它是线线的,不能再线了是吧?对对,是一个旋转接,然后这个时候我们我们这个图片它是一个那种。呃,叫什么,它有它有自己的ship,比如说是三十二三啊555乘五这样一个一个形式,然后然后这个线性层,它需要接触参数,它是一个。
48:08
是是一一长六就是这样一六。一乘六的那个一乘六的元素,然后这时候就需要把这个X进行一个。叫。在里边叫,在里边叫will。嗯,这就receive,那这个是只保留这个,只保留这一维,其他的维度全部给拉平。知道吧,这个是只保留,只保留那个这一维度,然后剩下三个维度用负一,负一就自动自动计算啊,比如说像这个X,它如果假如说X是它的形状经过卷积变成这样了,那么。嗯,经过这个之后,它就变成了。这就变成了这个样,变成变成了32。
49:04
三乘15就45。变成这样一个一个这样的话,就可以直接把它扔进那个里了。把它线下就可以了。FC。你。嗯。大需不需要激活啊,也需要都需要激活。我就不。嗯,那个就相当于拉直了是吧,刚才那X点什么的对吧?啊对,直接给拉直了。就32乘三乘五乘五是吧,就这样32个。呃,32个特征应该是是吧,三三十二个图片32。啊,不就32个,嗯,转机32个,那什么吗?就是个第一位是十。
50:03
哦哦哦,我知道了,嗯。对,然后。最后一个。F3。把X去就可以了。写错。啊,没有写错,然后这个卷接经过网络之后的结果。呃,一般的话,我们对前面这个卷积的部分叫做特征提取器。然后后面线性层这一部分,一般一般叫做那个。然后这样一个网络,一个简单的网络给打好了。这个这就是一个网络。然后下面我来讲讲怎么来训练这个这个网络,我看看是不是啊。
51:01
你是怎么训练这个网络?我再创一个。嗯。啊,还是不,呃,我直接。直接从好的那里边复制一些这些东西。那个搭建网络,用刚才自己搭的网络来那个来训练。然后data set,也就我们刚才写的那个data set。是教程里边。教程里面。
52:05
嗯,是。嗯。先把该引的东西都引进去,引进。然后训练网络,我们首先要干什么呢?首先先先确定那个,先创建数据集。嗯。我把刚才在这个教程里边写这一大堆数据测试直接复制过来。你到这条这里。我只能用手。
53:01
我们先把先把数据给拿到,然后拿到数据之后,我们要先,我们要定义一个损失函数,定义损失函数。然后损失函数用那个。就标准的意思。这里用的损失函数是,这个叫做。交叉的函数。用交叉作为函数,这个的话,那具体的式子实际上就是。就是就是log,然后再乘以那个标签。那外我用Y一来。用。VIVO。加上。乘以log。有点看不有点看不太明白。
54:16
实际上它的它的形式就是这样,他为什么用交叉商,交叉商的话,它可以提供一个比较大的梯度在里,嗯,可以提供比较大梯度,然后它具体的那些理论啊什么的,可以自己去看看,那个自己上网找一找。然后定义完损失函数之后,我们就定义优化器。什么优化器,就是实际上就是梯度下降,那那些东西。但是忘怎么写,我再叫他复制一下。啊,我们用的这优化器就是这么写,这FGD就是随机梯度下降。然后啊,我们在之前应该先定义,先把ne实出来。等于。
55:00
等于。呃,等于那个那个。然后把那个分类啊,要做二分类,然后就把这个做一个实例化。嗯,然后把这个net的。所有的这个参数。有ne所要优化参数传给这个SD,然后传入它的学习率,然后还有这个动量,那这个动量动量的话就是怎么说呢,我也能画个图。嗯。比如说我们优化的函数,我们优化函数长得长得这个样子,然后一开始它在这里。他会,呃,不好,也不好写,不好画。Moment呢,它作用它就是那个函数,它可能一开始,一开始梯度指向这里,他往这个地方方向跑,然后下一步他往这个方向跑。
56:05
然后下步又往这个方向跑,然后这个扭曲就很很不稳定,然后加入之后,它可以第一步先往这个方向跑一跑,然后再往这个方向跑一跑,它这个就比较稳定。这个波动,波动的这个方式比较小,然后具体的叫做指数平均。可以了解下指数平均,然后在里边有也有详细的讲过这个。那个。比较常用的这零点就是指数平均指数。那就是。有90%的是来自积累的,是来自上一次的那个上一次的值,然后1%的是这一次的值,这个的话,这个理论也是。去看看达。嗯,然后训练网络,定义好这些东西之后,我来定义一个最大的法,就训练人。
57:00
一个小时。然后,然后迭代这个轮次。迭代这个是34,迭代34。啊,然后定义一些。然后在这个轮次外面定义一些无关紧要的一些变量,我看啊,就是一些loss值啊,或者是一些准确准确率啊什么之类的。再给他初始化一下,然后在里边我们开始开始遍历这个图片。建立这个。变了是吧?给了,然后就。来编辑的图片,然后这个图片的话,我们来看一下,将来定义一个强传播。
58:01
就是先先取出来这个图片,就是你看这个data,它不是第一个值是图片,第二个值是的label嘛,我先把这个图片,这个图片和label给分开,然后把整个扔进网络里,都扔进网络里去,然后这个传播。然后这个output不就是这个网络输出嘛,就是扔进去的,他怎么进去,他进进给他吃什么,他拉什么,给他吃什么,他吐出来什么。然后前向传播完了之后定义反向传播。反向传播的话是我再把这个给拉过来。这是我们刚才定义优化器是那个随机梯度下降,优化器,想让它梯度清零,这个也是也是那个模板。然后,然后计算loss,就是我们的输出和这个label它的差距,它的差值是多少。
59:00
就像那个存值。然后我们对计算出来这个值进行一个进行那个向就是计算梯度,反向的意思就是计算梯度,计算梯度,然后就更新梯度更新。就是。TIM更新了。的权程,这些所有的全程就都就都更新了啊,然后这个这样的话,它实际上就开始在训练了,然后我们之后再做一些其他的一些一些外围的工作,比如说取他的那个,取他的那个那个。叫什么预算结果?看下这个。那这句话就是从。从这个输出,从这个网络输出,输出里边取出从第二上最大值。然后给出来的这个返回值,这个最大值,这个是最大值所在的那个所在的。
60:05
所在的位置,我们来看一下,我们先打印一下这个,打印一下这个output。然后,然后再打印一下这个输出这个,嗯,这个max这个。东西,他他发布了一个什么东西,我们打印这个。这个小斜杠。我看一下这个啊,我还是得。然后只训练,只训练一个一个一个。我来看一下这个。哎,赵鹏,嗯,我看到现在了,你能给我先说一下他这个你说比要。要要那个什么要灵活,他灵活在哪里呢。啊,灵活的话就是这个,你看我们搭建网络的时候。
61:03
我们每一步都都从这里都有。都可以拿到他每一步的这个这个这个非map,我们可以对map进行各种各样的操作。这个我记得好像也能拿到吧,康。拿不到了,他好像是拿不到中间的话,应该是对中间是看不到的,因为他他的他的静态图,咱们用的都是静态图,他静态图的话,他是不可能让你从中间去插进去拿到,拿到中间这个参数图的。啊,你说直接,可你那个比方说ma,呃,你怎么拿,你是直接打印就可。那个也能打印啊,你是想打印的什么东西能打印我记得。可以的。能打印的话,他应该是传应该就回不去了吧,这个打印完之后还可以再再放回去。就对他进行一个操作,比如说我都,我对这个X全部都减,都减去一个一。然后再把它放回去,都可以进行进行这种操作。
62:03
我记得当时开是怎么写的了,我我都忘了怎么写了,我因为我写过那个东西,就是可以看他的这一个,呃中间,呃中间层的数据。呃。也可以看他的feature,就是说。应该是可以,但是这个不太清楚一下。啊。看啊。嗯,我不提这问题,估计大家都可能都。啊,他是这样子。嗯,这个这个应该看不了吧。嗯,不能这样子看,他是到时候再重新弄,是加载了之后看应该是。啊,所以先加载,然后才能才能再看这一个,对对封装的完完之后呢,我加载那一个model,然后看这个model里的每一层的feature,它是这样子的,你知道在训练的过程就可以看吗。
63:10
对对对,从训练过程就可以看它中间的每一个每一步的变化,哦哦哦,那那还还可以,除了这个还有什么特点。啊,还有就是这些东西都是都是放在外边都可以,都可以自己写,你看比如说这个损失函数,我这因为是调用类库,我甚至可以自己写一个损失函数,就比如说这个漏。等于。Output。那个叫什么叫,那个平方和损失是乘以。哎,那个平方和怎么怎么写的,你随便写个SQRT吧,平方和啊对减,然后然后。嗯,ABS或者说什么那些类似ABS也可以,ABS可能不能求导,因为因为因为那个它绝对值求导,它需要用到用到最小角回归。
64:06
二八没有出现。啊,反正就就这样,就。非常非常方便,就是自己定义,我记得那个老他们能自己定义了,能自己定义好像很麻烦,还自己定义一些词,我忘了是不是。建议啊。还有然后还有还有就是就是这个图片这个这个处理,我们可以直接这里进行处理也可以。就深入到这个data里边去,然后在这里进行处理。然后处理的过程也可以直接,也可以说拿突然突然心情好,想要看一看那个。这个东西,然后直接把它转成P。我要转成PR,然后直接用直接打。都是可以的,就是随时随地想打印就打印。啊,你说看图像是吧,啊对,然后也可以看它中间的那个形状,比如说呃,比如说我这个形状是什么形状,你说的形状,那比如说我这里,我这里没写,我这里写了个七,它肯定是汇报错的吧,因为六跟七它通道不一样,不一致。
65:14
然后一运一运行它,它就会报错,然后这个时候我就可以把这里把这里每一步的F的she给打印出来啊,然后看看到底是哪一步出了问题啊,他给你打出来的是数字还是个什么东西,还是这。啊好,打印出来每一步这个东西,然后看究竟是哪一步出了问题,然后然后一看,哎,比如说呃,比如说这里,这里是那个输入的是三,输入13得出来一个,得出来一个七,还是得出来得出来六。然然后怎么着的,我们再就是非常非常好去排那个错误。嗯,行行,你继续。我就把这些东西都删一删,不能。嗯。还是用这个这个东西,然后。
66:04
先把跑起来。啊,对。啊,这个先先看一看这个网络输出,网络输出是什么,然后再看看这个经过这个max之后是变成什么。看会不会报错,你看报了个错。Have啊,对,你看这现在就错了。就说。呃,希望他有,他是六通道,但是他现在有七个通道。然后我们就刚才这个地方改错了,就没回来。来训练。大家可以看到这些。这个第一个就是output。
67:02
这这一串出售是output,这个是每一张图片它是一元的概率,它是一元得分,好像是100元的得分,一元得分100元,但每个图片都都返回了一个这种原这个。这个列表。第一个就是一元,一元得分,第二个是100元得分。然后经过这个max。就是在第一上,就是在这在这个维度上,在每一个这个维度上去取最大值。然后去看这个最大值,它是在零这个位置还是在一个位置上。那这个你看这个写这个横杠。横杠代表就是每个位置上的最大值,你看这个是0.0.062 0.062就是这个值,然它对应的,它对应就就是一说明这个值。说明这个是一,这个位置比较大,然后得出来这个这个类别就是一,就是第一类,就说明它是100元,呃,这因为没有训练过,所以它很不准,就说这是这是100元,然后后面就就是好像都是都给预测是100元。
68:05
嗯。嗯,然后就计算一些那个准确率啊什么的。看一下准确率啊。可看准确率只有7%哈,非常低。对,只有7%。非常低,然后这个的话就是整个训练的过程。嗯,然后训练完了之后,我现在只训练一轮上,比如说这个部分训练完之后我们可以对模型进行保存。那一个model。
69:05
第二。工作,这这叫PKL是叫PK啊对,是叫PKR也可以。呃,叫P也行,叫P也行,他们三个只是那个后,这个后名字不同,然后他们三个其实等价。保存保存的话,可以直接保存那个,呃,直接保存它的。它的参数。对。嗯。直接保存它的参数也可以,也可以把那个连带的模型一块保存下来,就直接把net保存下来,就既有结构也有参数。两种保存,两种保存方式。
70:02
保存。保存参数和结构。然后这样的话就会生成这个这个PKR文件,然后如果说我们用用的是第一种保存方式,我们下一次加载的时候就就是。那怎么加载呢,我想想。然后加载的时候就是这样来加载。那下次加载的时候就先先初始化一个net,就这个就把net初始化好。
71:01
然后进去一个二二。然后点,呃。什么,然后把这个东西放进。点这个东西就可以直接这就是加载好参数,然后如果这是第二,这是第一种。然后第二种就是ne。等于。不,不用net,直接net等于。这。然后你下面直接做推理就可以了,比如说一张图片。一张图片。
72:01
随便随便一张图片来表示,用它表示一张图片。为。那就这样就可以得到它的得的推理效果,就可以得到它的那个推理了。那这个就是整体的一个训练流程。他还是比较清晰,比较清晰的。主要就是前向传播,后向传播梯度更新,然后我们可以一般可以修改的地方就在于这个网络结构可以修改。然后。呃,这个这个叫什么损失函数可以修改。嗯,其他应该就就那个没啥了,不光可以这个你还还可以,甚至还可以加个值,还可以加个L正。
73:00
二一加。二一正则好像是对所有参数来说,我就。嗯,明白。这样来进行。这时候就变成目标函数。加了Le则,然后你如果有其他的,有其他的那些法直接加到这里就可以,比如说一般都会加一个。
74:02
嗯。然计划提出就可以了。所以说这就是那个拍照是整体的那个。用法。那个还有其他问题吗?如果没有其他问题的话,我再讲讲那个怎么用这玩意儿来实现一个re net net块。你那个刚才你那目标函数,我看一下,我刚才我没有仔细那个什么,你这目标函数是想想表达什么意思呢?啊,就是说我我想要更改目标函数,我可以非常方便,直接在这里加点可以。啊,这不都是计算损失吗,刚才这一个。啊对,这个是只有那个,这个叫只有损失函数,然后这个是加上了一些正则项,然后就之前您发那个说的说目标函数,其实目标函数等于计函数加上正则项啊,他们有时候目标函数我觉得说的不是很清楚,什么叫目标函数,目标函数应该说是我们那个。
75:08
你看Y等于KX加B吧,按道理这个Y和和应该说和实际值最最最最相似的那一个,应该这是一个,就是你最终的得到的是你的一个目标函数,当然你的损失函数呢,应该也算是目标函数吧,损失越小就相当于目标函数越正确吧,应该是这么一个概念吧,是吧,目标目标函数就是损失函数加上一些额外的正则。加上一劳动政策约束这正则,其实为了那个防止过拟合的,应该是是合适说,对大部分大部分的L1或者L2正则都是防止过拟合的,但是也有些为了其他的一些功能或者是什么,会加加入一些作者自己的那个正则啊对。一般一般都是L2偶尔一录是吧,但是那个录屏了嘛,就是你别到时候没有录屏,到时候可以多听两遍,就是我觉得赵鹏今天讲的挺好的。
76:00
嗯,对。呃,录录了吧。录了吧,应该应该是录了,谁录啊。那个李铮在录吧,李征刚才问我说让我开录屏权限啊啊啊,好的好的。嗯,那那我继续讲讲这个ne的那个实现,因为他我只只是只是写一下它那个实现的方式,就不怎么搭,就不搭这个网络实项可以我看方正在方正有什么问题可以多交流哈,方正啊。凡是一个ne的块,也是先用一个class z来那个来来定义,然后然后然后凡是它的是跟网络有关系都是。然后注册到户内上去。我我键我键盘上我了好几个按键。
77:00
嗯。是这样。写错。那你写错了哦。定义那个东西。然后我们找下图哈,一个。啊,这。嗯,现在。就是何凯明,他最终最终提出来的那个形式是。嗯。没有很清晰的。你有没有很经典的?
78:04
啊,现在算是这个。就就当是这个。这是一个,这是一卷积,加上normal normalization,这也是一个normalization,然后这也实际上还有一乘一的卷积,然后最后。做一个相加。然后这个编就叫做差,然后它它为什么好用,好是因为呃,它主要是解决一个梯度的那个叫梯度消失的问题。因为那个网络的话,很容易梯度消失,梯度爆梯度解决,提出题样话。所以说他可以打很深的网络。他的核心思想就是让他至少保持不变。
79:01
还是一系列的那个定义。我走下,我之前写了一个。啊,这一个因为它是一个ne模块,然后需要一个。Channel e为一个channel out。大家定义第一个卷积,卷积层con等于。嗯嗯,对。嗯。嗯嗯。然后这就可以了。第二个。
80:10
好几个案件。然后定义一些。第一个BN等于N点。Normal。给他传为给他一个是是他输入是这个BA的输入,输入通道数。BN2N对吧,Normal,然后。嗯。嗯,然后。还需要一个跳远连接,跳远连接的话一般用都要。
81:05
等于N点,他直接就把这个给你做好了。啊,可以直接。啊,我以为是直接定义的,你是自己定义的的变量啊,啊对,嗯嗯,因为非常灵活,随随便自己怎么写都可以,嗯,可以。我看如果输入和输出它不在一个。呃,它它不是一个,它相等,那么这个输出的话,它需要需要一个一乘一的卷积。哎,这个是。要个。说一下为什么不相等,打开刚才那个图。这个。对。嗯。那一般的话输入输入的话。
82:02
这个比如说输入X是二是通道,然后他要进行进行提,它提取就提出来六六个通道。然后六个通道呢,它跟它一个三通道,一个六个通道是不可能直接相加的,然后就需要对这个进行一个一个叫升吧。必须要进X进行升比后进一乘一的方式,哎,我忘了中间两个wait列,中间没有,中间没有在磁化是吧,中间没有加转集合是吧?FX到这个什么没有哈。加了个活是吧,啊,只有一个相,这个相替换替换那个卷。对标是一个转机,应该是吧,应该有个转机吧,这俩。啊维就是剪辑就是就是对对对对,就是全有权重层,就是凡是可以训练的层都可以放这里啊对对对对对啊。
83:00
他转转机之后应该会变小了,这个时候X也是一个问题是吧。嗯,对,他因为是转机之后又加了一层磁化吧,应该是一般情况下。没有啊,这个应该是没有加磁化啊,没加磁化,没加磁化呢,它也会变小啊。啊,小小了那个给你那个盒盒的大小是吧,然后盒一般一般是长这个样子,一一般的话是在中间这一一连串的卷积,它的输入和输出是要求不能变,然后一般只有这个。只有其他,只有极个别的情况下,它是不相等。那这个就需要一乘一的卷积来对它进行。进行那个。呃,就是就是通道的调整。啊。等于啥?
84:00
等于。直接复制完。这个水是一个序列,是一个序列容器,就是相当于把两个打一个包。把这两个,把这两个东西打一个包,然后放进去。那一生液转接这个是。嗯,是不为一,然后有达说过有实验证明一乘一的卷积,只要是用的好,它是不会影响那个不会影响性能。然后定义它方位一乘一的卷积应该是这个一乘一的卷积,在这里主要目的是为了解决,就是说呃,它是一个是升升级,一个是降级,比方说原来是呃三成,你可以把它变成六层,也可以把它变成呃三成是吧,是为了解决它这个乘数相等的问题是吧。对。
85:01
然后下面就开始进行这个。搭建,然后。第一个是X。等于。里边的话是。B。不让写,我把它把它给铺开写了。X先进入,进入那个卷积层,进入第一个卷积。然后出来的结果再进入这个BN层。
86:00
第一个。嗯,然后再对这个第一个经过第一个病人之后,进行那个F磁化啊不是这个叫激活。然后再再进行第二个。再进入第二个这个东西。呃,他变完了之后应该就没了吧。把它变完之后就相加了。嗯,然后我对我的先做一个备份。他马上做一个备份,然后。
87:09
嗯。然后我。嗯。好。对不对。嗯。然后这样就完成了一个卷积,一个卷积块。啊,对对,发错了。这应该加材。让你完成一个卷积块,然后我们自己定义这种的这种网络块怎么用。
88:03
就是我就不写了,我直接。那之前写的那个。嗯,啊,如果ne这还是我把Li ne那个卷接全换成换成这个块了,那就这样就这样用就可以。就跟正常那个就就跟这种东西一样用。该传传进去就可以。然后主要调用的,它主要调用的其实是这个forward。方便。一方面可以用,然后这里的话,你是可以在这个里边还可以做一些自己的修改,你比如说我不要两个,我非要三个。我要三个选项。啊,也可以。
89:01
然后在这里再加一个改进,都都没问题,都可以都可以做修改。好。嗯。然后可以在再再再修改一下,他那再加一个那个简介,都都是都是可以想想怎么改怎么改这个。就是这样。然后这个就是今天。那个大部分所有东西。还有同学有什么问题吗?大家抓紧问问题啊,每人问一个问题,有机会难得是吧?平常都挺忙的。
90:03
你你你不要自己觉得自己问的问题很无知啊什么的,这都无所谓啊那个。不明白就问,就是他在哪一点你觉得不明白,你说都不明白也行是吧,你至少让讲的人家知道你哪里不会。孙艳花。发。老师啊,就是就是我觉得就是我这个就是都都不明白,我得再好好学学,你要都不明白的话,那大一的我觉得更是不是。都不明白了。啊,那个。李正。
91:00
方正,说说你的看法,方正,方正再说。啊啊啊,那个确实今天看那个确实学到挺多的啊,然后那个刚刚那个。就是刚刚他用平安搭建那个,呃,产量结构。对,搭建那个产能结构,然后刚刚我又去百度上找了一下,发现开也能搭建,搭建什么结果。就是刚刚的那个产网啊,那能看我觉得最基本的用肯定都没问题,他刚才说的灵活性,一个是那个呃损损失函数它能自己构建,嗯,我觉得这个我我忘了是吧,另一个是呢,他能动态的看到一个模型的这一个,呃,模型训练的这一个输出信息,就是每一层的这一个,呃特征和什么的,我记得好像在开,是好像是完不成开,怎么看呢,我得训练完之后呢,我把这个模训练好的模型加载出来啊,它好像是这样子的啊,嗯,对,就是cars cars它必须要把就是整个模型加载出来之后,然后做一个做一个剪辑的可视化。
92:18
也就咱们没法就是说在训练的过程中去看,你顶多说你要是呃想想怎么看呢,你比方说训练思谱,你让它生成一个model,你再另开一个程序呢,去去加载它去去去去去去做这个事情啊,我觉得这一点是什么,但我我不知道那个开能不能定义漏哈,我忘了还有这个优化优化器这一块,我不知道那个赵鹏他支持多少优化器啊,还是说常用的那个Adam啊,还有那个那那怎么拼的那几个都都可以用。自己自己定优化器嘛,这一这一块优化器自己定义应该应该是可以,但是我没试过。啊啊啊啊啊,咱那个损失函数吧,我那知道那个那个谁,我不知道咱们能不能定义那个损失函数哈啊。
93:05
呃,就目标函数什么的,哎,你。嗯。那个方正咱们正好那个损失函数这一块呢,也要和赵福要商量商量,就是这一块呢,下一步怎么去去改是吧,其实这也是一个很好的一个改进点,我们自己定义损失函数,结合我们的这个特点,看过一会赵鹏呢,可能是赵总来说说这一块的东西,我觉得挺好玩的。嗯嗯嗯嗯,至于咱们用不用P套吧,我觉得至少我们了解P套以后合适的机会,比方说真要有一个,呃,要要要要开发新的代码,或者什么情况的话,嗯,或者有篇好的论文,他已经实现了一些好的框架,就用PY套了,我们至少不陌生了,我觉得这是这次赵讲这个东西呢,我觉得意义所在吧,应该是嗯,这个这个什么时候他要是做不下去了,然后转P套,要不我们这PY套没概念,一看有PY套的论文就选择性的放弃了,是吧,就就光找这个有carrot的论文啊。
94:05
对,我现在我下的论文上,它开源代码基本上都是那个了,是吧,对你看我随便找一篇应该都是。后干干干,他他赵鹏泽主要是干啊,但是啊。卡住了,反正这这里边30多篇论文里边,基本上每天都是那个都都是拍套套词的是吧。嗯。电脑怎么卡住?你你这边呢,赵鹏,你主要的你说一下你的创新吧,你说一下你的就是说你一一个是你选选P特,它确实方便简单,另个是你现在做这个干干对抗生成,你下一步的创新点大概是在哪里,你能说一说吗?我觉得可能话他们想可能想听过会大家说一下你你听懂了多少哈,也是不是也是一个零啊,还是说什么。
95:08
我这个创新理就是个头疼你哈,我就不知道该下一步该怎么做,所以就一直都不想开了,这个现在我觉得创业,呃,反正也是我们也是堵在这里,就是说嗯。跑跑这些代码一点问题都没有,就是拿那个创新哈,嗯,这个代码其实呢,大家这做做编程的,其实尤其是呃,你前期你做了跟着我做了那么多矿山的代码在做这个应该没有什么难度,说实话哈,是代码量太少了,是不是啊啊相对咱们做系统化开发,我觉得它它这个复杂程度要小得多,对不对啊,但是深度很深,但是它的深度啊,每个点你比方说它,它深度也不深,在代码上,它是比方你这一个优化器代码就那一行是吧,关键是怎么定义,你怎么定义那个数学公式啊是不是啊,那个损失函数,你怎么定义数学公式优化器。
96:04
你怎么定义那个公式啊是吧,你有几成啊,是不是几成的话,你编程很简单,你加一层就是了,对吧,你那就稍微复杂点,也就产插网那个也也不难,那个也很简单。啊,我现在想就是下一步加一些注意力,进行加一些那个自定义的注意力机制,然后我这个是正好做一下注意力这一块啊注意力的话,那应该有篇有篇论文是讲的,他用的是就是就是原生的自注意力,你这个注意力他目的是要解决什么问题呢。就是找出那个它那个比较关键的地方。他是用的吗?还是。呃,我看这篇论文里,他我看他代码里边应该是专专门写在一个一个块里,就类似于block那。这个每个块都有一个,都有一个注意力。啊。哎,这个是一个方向,然后还有一个是,就是我用那个不是干嘛,它那个判决器叫干,嗯,就是会把图片变成一个一个小,然后我想对这个PA加一个权重,就相当于就是对PA做一个注意力。
97:16
然后效果不知道怎么样,也没也不知道该怎么进行,就就像这样想着吧。啊,注意力。对,这是一个注意力,就是非常经过一个卷接得到一个。得到另一个特征图,然后这个特征图做一个反转就是。相当于那个转,然后跟另一个剪出来做一个相乘,不是啊对,做一个矩阵乘法,然后通过绝对乘法里ma提出,提取出里边那个较显著点,显著的点。得到这显著点之后,得到一个注意力,注意力map,这个注意力map再和一个这个一乘一的map,这个叫什么非常map做一个矩阵成主要是要解决什么问题的,注意力就是说是焦点吗,聚焦吗?还是说什么意思?对把那个让让他关注一些其他的,让他关注一些特定的部位,比如说啊那那个。
98:16
方正咱们那个是不是有要有这个注意力,我觉得挺好玩的。嗯,对,包括之前做那个反潜机也是发现就是它有那个特定的部位嘛。来看一下这一块的东西啊,我觉得挺好玩的是吧,因为咱那个注意力呢,是关注的融池尾部或者融池的这个头部或什么的是吧。嗯嗯嗯,这把这篇论文,你把这篇论文发一下吧,给那个这个这个论文他用的也可以吧,反正这个论文用注意力,他没有,他没有对注意力做创新,它主要是啊,他主要是用到了注意力这个东西,其实我们可以嗯啊这篇论文主要是两个点,一个是用注意力,然后去去生成图片,然后另一个就是用普规化,然后普规化干有的东西可以不用理解啊。
99:08
发到哪,我直接发给那个周。发给发deep里不就完了吗?嗯。这个效果也难说好不好吧,反正。但是也有些点我们就要去尝试,尝试未必好,也未必不好,但是呢,能开阔一些思吧,对吧,对啊对这这篇文章在在干这个领域还是效果还是挺好的。啊,他拿过一次那个就什么不,他有时候一个是干领域的吧,另一个是什么,你看他有没有物理意义。是吧,物理意义就是说什么意思呢?你就认为这个地方针对一些特定的这个工业场景,它这个加上注意力机制吧,他就是我就要注意这个区域是不是这个区域对我来是有价值的,我这个轮廓对我来说有价值的,我觉得这这个要要结合这个点。
100:04
啊。对,可以看下这个前面一些介绍,我记得他好像还有一个是说的是,嗯,就是关注一些一些分散的比较远的一些一些东西,比如说像关注一些狗,判断一个狗,判断它的狗腿之间那个。这这些这些关系。啊,骨骨头之间关系,是研究那个抗生抗生其实其实。嗯。怎么说呢?我这和你说一下吧,什么叫对抗生成,就是通过,就是通过,就是用生成网络来生成一个图片,就生成我给定训练级的那个片片。而且生成各种比方把方正训练一下,可以生成不各种不同表情的脂方症,其实就可以演电影了啊对对对,所以现在网上的一些换头啊,换换就是直接把头给你换掉了是吧?啊嗯,那个差不多那个像那个图像修复,比如说后边修复,对。
101:12
啊呃,赵鹏现在用这个生成干什么呢?它是用来预测,呃,做图像预测,所以说那个方正和咱这一块还是很相近的,为什么呢,他是方正,他是做什么预测呢?给你个医学图像。给你几幅预约图像,它根据它来生成下一步的这个预约图像的演变情况,也有可能呢,会不会有这个,呃,病症的话,其实预测它有没有疾病是这意思吧,这胖。啊,他是那根据它那个术术前图像来判断他术后的那个图像,术前图像啊,你看我们这个图像,其实根据我们,呃,我们可能焊了好几分钟了,到现在我们收集了,比方说我做焊接,焊接的时候呢,这个它就融化,融化收集好几幅图像,我其实可以也用这个来生成,来判断以后的这个图像是不是它的一个行为嘛,你其实也是一种分类,对不对。
102:03
啊,这个分类还不一样,它主要是学习一个应试学习那个分布,学习图片一个分布。那怎么个设计图片的一个分布,那个图片,图片那个样,图片风格样式,比如说呃,它的风景图,它的它是什么,早上晚上它里边有什么东西,有树啊,有什么东西,那那你怎么来判断它这个病症呢?你说你生成了图片,生成完之后要解决什么问题呢?就是用用用那个。叫什么?就是前的作为条件,然后输进去,然后希望输出一个后的像。像其实是你还是预测它的发展吧,是这意思吧,对差不多是吧。预测它的发展。他这个。非常更具体一点,然后还得再跟老师,老师多交流交流,因为一直一直在想怎么去,然后生成逼真一点,然后我还没有去,对啊,那你要是生成逼真了,其实你这就是一种预测了。
103:04
你要是说根据术前的预测,术后的东西。嗯,对,但是但是尹老师尹老师说,呃,这个那个需要多加入一些其他的一些信息,才让那个才能比较可靠,然后我还得再去这样,我就觉得你这个,我就觉得你这个如果仅仅是根据图片肯定不靠谱,为什么呢?因为你那是一个静态的,它不含它不包含历史信息啊。嗯,对是吧,你看我们预测这个发电量的时候呢,我们是把整个济南市看成一幅图像,但是它是包含历史信息的。对,这是这是一个问题,我也一直在啊,因为为什么你要一张静态图片,没有历史信息,那你怎么去预测未来啊,是不是啊啊,你只有当前图像的一个静态的一个状态,它就是说它不具备关联性,就是说是这意思吧。对,但是他他现在有那个术前的图片和术后一个月三个月和12个月的图片,那就例子数据了嘛,啊对,但他但是他如果想要生成一个图片的话,就只能用原图,然后他有问题啊对对对对对,也就是说你必须不停的加入他的样本进行校正,是这意思吧,啊,你要是纯粹拿术前的,因为术前就是一个静态的,就这一张,因为呢,你刚做了手术,不就这一张嘛,是不是当你一开始运行的话,就变成术后了,对吧,它是一个瞬间,瞬间一个一个一个点,应该是。
104:26
对,但是类似的有一个有一个眼科的哈,也是用类似的方法来预测了那个。预测一个眼科一也是一个眼科疾病,然后他都疼都能中了,然后那个我导师就觉得应该也可以做一做试试啊,挺好挺好,我我们这一块也可以跟着一块来玩一玩,因为我们这个也是一个历史数据啊,那个方正也可以一块来来来来什么来学习学习这一块自动生产,这个主要不是预测完了,这应该就是用了一种那个。比较这个怎么说呢,就是就是分布,就是演变,演化也不算是演变嘛,就是用它。
105:07
就用之前的数据作作为条件,来来来那个来来拟和来拟和那个术后的分布,然后用用这种方式来做那个你还是预测。那你它本质上它不是预测,本质上它是一种生成,你还是用它来做解决预测的问题,因为就是说你这是一种手段嘛。啊,你还是做一个实现预测嘛,因为你的目标就是说来预测他病后发展的情况嘛,到底是向好的方向发展,还是向向坏的方向发展,不就这意思嘛,是吧。嗯,对。啊,看卢辉发了一个那个。呃,这个东西。啊。就是大概这么原理,主要是生成对抗,它有个有个生成生成网络就跟那个跟那叫什么来着。就跟分网络一样,然后还有个判网络,就分就二分类判断。
106:05
嗯嗯嗯嗯。行,咱那个还有其他那个人有问题吗?然后。没问题的话,咱多交流交流也可以,然后其他如果没事的话,可以先离开吧。有事咱俩多交流交流。嗯嗯嗯。那录屏可以停了哈,录屏不用录那么长时间,对有些那个咱们讨论的东西可以不用,只记一些讲解的东西就可以了。对那个张真和发,你们有什么?其他问题吗?比如说整体的一些一些那个流程啊什么之类的。哎,怎么没人说话了?再想想一想。
107:02
你。那就那。嗯,就你后来写的那个网络是怎么用,就跟原来那个有什么不一样呀。我写的是这个还是那个block,就是就是这个这个,然后嗯,啊这个话其实就是把这个地方换一换就可以,反正你看这个名字跟原来不一样了,我之前不是有个网络。然后这里不是定义实例化,有把这个换一换就可以,名字换一换就行。账账有什么其他的参数传进来就可以,如果有其他参数的话。那就可以用了。这个是因为没有引进。不太一样。也可以,可以把它引过来试一试。
108:11
报了个。那我看什么错?啊,没有注册。啊,这个这个尺寸还不一样,哎,这个算了算了那个。
109:01
可以换过来用,就直接换过来就可以。只要计算好他们,计算好他们这个中间的这些通道数啊,或者是这个呃,这个什么数就可以。这个应该是尺寸的原因。哎,那个呃,万发咱们那个以后啊,咱们不行就每周啊,咱们都要开一次讨论会,下一次每个人呢,去做这个分享,下次方正你要不分享一下你那个崔可吧那一块。
110:27
还有其他的吗?那个还有其他什么问题吗?比如说呃,一些一些基本常识上的问题,一些基本知识的问题啊之类的。嗯。
111:04
没有的话,咱今天就到这吧。哎,李总有什么要问的吗?什么卡呀?那没有问题,那就都撤吧,那那个。有时共享了。那结束会议了。
我来说两句