我这个桌面机器人,之前一直没有解决的手势识别稳定性问题,居然莫名其妙没有了。应 粉丝要求搁置好久的手势识别模块,我重新装上了,拿之前写的代码放到小智二点零点一框架下,重新翻译了下,居然能够完美运行 i two c 总线冲突崩溃的问题居然不见了, 看来应该是小智 ai 框架代码优化了 i to c 调度,然后手势监控屏幕表情和跺机随机动作互斥,所效果运行的很好,现在既能手势识别,还能随机动作,真是棒棒的。代码我是一点没改,效果居然很好。然后我已经将代码更新到 getei 了, 想研究原码的可以搜索克隆,整套硬件我也开源了,可以查看主页置顶视频关注我,一起手搓机器人。
粉丝4.3万获赞11.3万

好,关于我上一个视频,好多人不知道怎么用,那我就出一期使用的视频,然后呢就是你们访问我这个链接去下载,下载完了以后去解压,解压完了以后就是这一个 hqmail, 然后我这个是 mac 电脑,然后呢就是在 windows 都是一样的,那我就这样,然后你这里面你可以双击啊,去进行,我们去访问,然后这里面我可以就是使用这个谷歌也行,然后访问完了以后去点击体验。注意,这里面我说明了,这个应该是写错了,就是我们是左手就是捏合取图,右手呢控制爆炸啊,然后呢点击开始体验, 点击开始体验以后这边要允许啊,就是摄像头他会有一个弹框,那这里面就是啊,点击允许, 点击允许以后啊,我这里面就我把这个视频关掉,然后这里面因为我这个麦的电脑它这里面有一个光啊,就是有一个这样一个绿色的光,证明我这个摄像头是打开了啊,其他电脑我就不知道了。然后呢就是有好多同学说控制不了,你看控制不了,我这也控制不了 啊,就是因为我是软件开发的啊,就是就是可以检查,点击检查以后你会看到这是一个报错的,因为这里面我呃在这个公告里面也说了,有时候他这个是不稳定的,所以说他一直在爆黄啊,就爆红。那没关系,我们可以等待啊,等待,或者说多试一个浏览器,比如说我是,我是一个火狐 啊,多试,然后你可以等待一下,等待一下他可能这个资源,或者说这些性能还会慢慢加载起来。 好,大概等了五分钟左右吧,然后刚刚电脑风扇是没有去进行转动,现在进行转动了啊,说明这个性能,这个电脑的性能就运作起来了,然后 就进行可以控制左手啊,就是我们的右手,因为为什么我这里面写了一个左手跟右手不一样呢?是因为我们这一个镜像啊,镜像的问题就是如果说我们是用右手的话,他那里是一个右手,所以说这里面写的可能, 然后这里面我们用右手去进行张开啊,要一定要对着那个我们这个摄像头啊,如果说你这个在这里,那可能是不行的,是吧?张开,张开的话,是啊,这个粒子扩散闭合的话是粒子合并,那这是右手的功能,然后左手的话是图片,但我们这里面要导入图片,然后在这里面 右边有一个导入图片,它这里面有个上传 mp 三,上传 mp 三的话,这里面就是我们要首先准备本地的 mp 三格式的音乐,那这里面我就不演示了,然后我就演示这个导入照片这一个 按钮,点击这个按钮,点击这个按钮以后啊我们选择一张照片啊,这里我只选择了一张照片,然后你要多张的话,比如说我们在这里面啊选择,比如说选择多张照片,怎么选择呢?其实很容易啊,按住我们电脑上的 shift 键啊,这是连续选择,如果说按住我们这个电脑上的这个 ctrl 键,那它会不连续啊,选择 选择完了以后,打开他这里面会提示他这个挂三张图片,点击确定,那这里面就有三张照片啊,围绕在这个放大度放在这上面,那这里右手我们还是一样,就是点击这个扩大照片也是在上面,然后我们如何去就是查看这个照片呢?左手捏合 啊,这里面就可以显示我们这个照片,他虽然说我这里面是张开的,但是如果说我这里面啊就是把它关闭,这样我们也照样也可以进行我们这一个这个裂合状态进行查看, 对吧?那你也可以全屏啊,全屏的话在这里面啊进行全屏啊,全屏往这里面,然后其他的比如说里面还有一些内容啊,这个是我们这个标题的内容, 然后这里面自己大小可以扩大,然后呢自己也是一样的选择,然后呢我们也可以选择我们这个圣诞春节啊,春节的话也是一样,我们可以进行 啊,就是随意的切换下面一些转速啊,速度以及音乐力度啊,这是个人,个人个人的一个条件,基本上是这样的啊,基本上是这样的。

公共博士分享知识,今天教小白一步实现生成这个人脸识别的程序,让我们来看一下这个效果啊,这个是呃,这个生成的人脸识别的一个程序,它可以根据人脸的一个动态捕捉它的这个位置,然后我们来看怎么来实现的啊? 首先呢在 deepsea 里边,然后啊输入一个提示词,帮我生成一个利用笔记本电脑摄像头实时图像识别人脸的拍摄程序,然后它就会给你生成啊这样的一个嗯,范例。首先第一步呢是准备编程环境,当然你肯 这个博主很多了,我就不讲怎么拍,嗯,我们需要得把这个 open cv 这个插件给它, 这个非常的方便,如果你要是不会这一步操作,你也可以不用不操作这一步,直接将第二步编辑并运行程序,这个呢进行一个复制, 复制之后啊到这个啊,拍叉这个啊编程的界面,把我们的复制的程序给它粘贴到这,然后就点击运行,但是点运行的时候啊,它可能会提示,你说没有那个 open cv, 那 会在这有个提示,我这个已经装完了,就没有提示了, 然后他就想啊,就是你点一下进行安装,然后一点安装之后,然后你再次进行点这个运行,然后这样的一个对话框就会出现在你的面前啊,就是非常的方便。 好,那这就是一个非常简单的人脸识别的程序,那对于学啊 python, 从 hello world work 这个程序开始,一直到你能够独立自主编到能够视觉识别的,这个程序的复杂度呢,需要经过很漫长的学习, 那如果通过 ai 的 这样的一个手段,让我们快速的拿到结果,这样的话可以激发我们的兴趣,同时可以呃,很快的完成我们的程序的一个落地。好,那今天的分享就到这里,大家学会了吗?

我们来用代码实现一个最简单的神经网络,之所以加这个章节,是因为前面我们讲的知识以纯理论为主,没有带着大家动手实践,可能会缺一些体感。再一个呢,也是看到网上不少关于深度学习的讨论,认为要花一星期两星期的时间来学一下派 top 及它的 api, 实际上 python 的 api 特别的复杂,你要学一两星期根本就学不完的。再一个就是大家大部分时候看不懂 python 的 代码,并不是因为你不了解它的 api, 实际是不了解神经网络的各种各样的原理,导致这行代码就是用的最简单的 python 代码,你其实不理解它为什么要这么写 这节课呢?就带着大家看看我们上节前面学到的知识是怎么在用代码来做体现的。我们前面三节主要在讲什么呢?其实从感知机啊,反向传播讲的都是些理论,其实把他们拼起来就是训练一个神经网络的全部内容了,就差写代码了, 我们学了前向传播和激活函数,学了损失函数,也学了梯度下降,再学了反向传播,这其实就是一个。 这四个易循环其实就是一个神经网络训练的全部的内容,无论是我们今天要讲的最简单的图像识别到 gpt 的 训练都没有例外。 那么我们今天的任务呢,就是把这个四个事件呢连起来写成代码,让大家看看神经网络是怎么工作的,就是亲手写一个只有两层的 lmp, 它让它的任务是实现手写的数字识别,并且呢,我们在屏幕上画一个数字,让模型实现实时的一些识别, 其实呢,当然两层不足以保障它的精准性啊,只是给大家演示一下。首先呢,我们要在代码中呢,我会干这几个事情,看看 minis 的 这个数据集大概长什么样,怎么去写代码,我们再用最原始的手写一下,再会用 python 的 语法来写一下, 大家就会感受到,其实过程中这些代码你看不懂,并不是因为你不了解派 top 值的 api, 即使用最简单的 python 写,如果不了解深度学习的基础,你也是看不懂这个代码的。最后呢,带着大家实现让手写一个数字,看看我们训练出来的模型如何识别 我们写的代码,虽然非常的简单啊,但其实它就是当时杨丽坤实现的 cnn 的 基础,后面就是用它实现银行的对支票的金额的识别,邮政编码的是自动分拣,打卡的识别,背后用的都是它。我们先来认识一下今天要用的数据集 minister, 它可以称之为是深度学习或者是 cv 任务的 hello world, 它是由都是手写的数字啊,都是黑白的,二十八乘二十八,这么大的可以就是零到九十个数字,其中呢,有六万多条训练数据和一万多测试数据, 非常的小啊,可以在 cpu 上几十秒就能跑完,不用显卡。看一眼今天要用的数据集。首先呢,引入必要的依赖,设上随机数支持,设上中文字体支持。因为我们读出来的图片的格式和我们深度学习训练要用的会稍微有点区别,所以我们定义一个 transform, 对 图片做一些转化。这里面做了两个操作,第一个是 to tensor, 它干什么呢?计算机表示颜色呢,用的是零到二五五的数字,用三个就表示出来了,就是 r, g, b, 但是呢,深度学习里面,我们希望呢,它是用零到一之间的数字这样,而且是小数,所以算起来会比较的方便, 否则,呃,实在太大了。所以说呢,就用 to tensor 做这个转换,大概让它们除上一个二五五。做完这个转换之后,还需要再做一个,因为我们默认读出来的图片呢,大概是由高度, 宽度这个图片再加上通道数,因为我们是灰色的,可能就有一个通道,如果是彩色呢,可能就到 rgb。 三个通道嘛,我们需要把它变成了先是通道,然后再是高度,最后是宽度这种格式,所以 to turn sir 就是 帮我们干这个的, 再调了一步就是 normalize, normalize 是 干什么的?其实就是让它能够这些分布呢,能够以做标准化, 而且呢还给用了两个非常奇怪的数字啊,这个数字呢是业界用的常数,为什么要做这一步呢?其实这一步称之为归一化,到后面的章节我们会详细的介绍,为什么要做这个归一化,而且有的时候是 p, 有 的时候是层,他能让训练更加的稳定,收敛的更快,不做也可以,但是训练起来就会比较慢了。 好,我们再把数据集呢,用 touch fusion 这个 data size minus 把它给下载下来,分别把训练集和测试集都给下载下来,下载完了之后呢,当然我们给应用一下 transform, 把它们已经给做好转换了, 再定义 data loader, 把它们给装进 data loader 中,并且切成一定的 batch, 这还记得我们讲梯度下降及优化器的时候的 batch 的 概念吗?一次训练是特别难啊,所以我们把它定义成一些比较小的 patch, 这个是做一下 洗牌,其实给他把顺序打乱了就行了。大概呢干的这个事情,我们可以看看,我们对应的实际上有六万多张训练级,一万的测试级,每张图其实都是一,就是通道就是一,因为我们是黑白的,高可宽都是二十八,就是这么大的, 我们可以取九个样本呢,来看一下,在这数据集里面取九个,把它给画出来,看看它大概长什么样子。可以看到啊,大概它有一个 label, 就是 它的 y 值,我们可以理解为五,这个呢实际上就是它输入这样就是五,因为是手写数字, label 是 零四,就看起来大概就是这个样子的。 好,那我们再来看看我们怎么手写这个训练级我们就做一个最朴素的两层的 lmp 就 行了。 首先呢,输入是多少个特征呢?是七百八十四,这七百八十四是怎么来的?因为它是二十八乘二十八的灰色图片,我们需要把它给拍平,因为就让它变成一个七百八十四维的向量,这个相当于它有七百八十四个特征,每一个像素就是一个特征,所以我们的输入层都已经有七百八十四个神经元了。 中间呢有一个隐藏层,这一个隐藏层我们激活函数呢,用 re loop 它做什么呢?先做限行变换,再做非限性限行变换呢?我们就一个参数加啊,就一个权重加一个偏置就好了,再到输出层,输出层再做一次限行变换,其实也是一个参数一个权重让它输出一个十维的 logis, 对应的就是十个数字类别了,但是我们没有做 softmax, 它还不是类别的概率,参数的量的话,我们就可以简单的来算一下,大概就能到这种维度了,实际上即使一个简单两层的,其实参数量就这么大了。这个其实就是理解我们到 cnn 的 时候,为什么不能直接用神经网论 最基础的神经网络了,参数量实在是爆炸,这个图片都这么小,而且仅仅用了两层就有这么多参数了, 那为什么不是中间还有些数字啊?有一百二十八,那为什么不是二百五十六或六十四啊?这也没什么特殊的理由,首先用的都是二的密啊,跑得动就行。今天我们关心的主要是训练的长什么样子,不是把它调到极致,调到极致得用我们后面的知识了。 好,那我们其实就是这四个动作,无论是什么训练都是这四个。首先呢,定义一下他的前向传播是怎么做的,从输入层怎么到隐藏层,怎么到输出层,定义一下上节课用的损失函数,看看我们到底差距有多大,反向传播再更新梯度就行了,大概就是这么做的, 回到代码轴起的就是这四个步骤。所以说呢,再带着大家回顾一下,我们输入层七百八十四个,隐藏层呢,用了一百二十八个神经元,这一百二十八不用纠结啊,输入层是十个,因为是十个分类吗?这个是由输入层和输出层都是确定的,隐藏层呢,实际上调整多少个都都行, 看一下代码,我们再把它呃随机随机种子种一下,可以我们对参数进行一下出土化,出土化的时候我们也用了一些奇奇怪怪的数字啊,这些其实并不是完全用的纯随机数,那至于为什么这么用,我们后面也会有一个章节,专门来讲就是参数出土化的一些技巧, 这里面先不大家就先知道用这个数字就可以了,后面会理解为什么 require grant 是 什么,告诉海涛,是我是要给我算 t 度的,你要先把它的前向传播的计算过程记下来,算 t 度的时候就比较方便嘛,一个 w 一个 b, 这个就是第一层的 w 二和 b 二呢?第二层出出层的,对吧?我们把这四个参数呢放到一个数组中,放到一个数记下来,定义一下学习率,这时候我们定义学习率是零点一,这个也没什么道理可言,就是一个自己定义的。后面的章节我们也会介绍到学习率怎么设置才最高效。 打印一下可以看到我们是有这么多参数的,就来看看我们写的这个过程,我们让他训练五轮,每个这个词怎么念都行啊, epec 啊, ipad 啊,什么 watch 啊,怎么念都行啊,但是念那个 epec 可能大家都能听懂, 它呢是一个一个 epec 是 什么东西呢?其实就是把所有的训练级的六六万张图片呢完整的过一遍。 但是呢,我们上节课讲到梯度下降的时候给大家提到过啊,如果全都训练一遍再算一次梯度,实际上是特别慢的,一般我们都用 mini batch, 我 们可以设一个一百二十八张,做成一个 batch 来算一次梯度。好,看一下这五轮循环,我们会把每次训练的损失呢,还有每次的 准确率都统计一下,为了后面做图方便,五次循环,首先是把最开始的那个损失都记成零。 可以看到啊,在我们的在训练集中,呃,它里面是有什么呢?其实就是我们 b 就是 batch 的 意思啊,这个呢, x 是 什么输入特征? y 其实就是我们的标签,它到底是多少?其实 x 的 形状大概就是这样子的,它因为一个 batch 有 一百二十八个嘛,它就一个通道,二十八高,二十八宽, y 其实就是纯粹是一个一百二十八维的数行的数据了,每个告诉你它是值是多少,它到底它的分类是什么? ok, 所以 说,首先呢,我们需要把我们的一维向量,把图片呢,把它给变成一个七百八十四维的数据,二十八乘二十八嘛, 我们再看看隐藏层,这是输入层了。再看隐藏层,隐藏层呢,就是限性里面呢,进行限性结合,而 x 这个 at 实际上在 part 式里面呢,干什么?向量的乘,就是矩阵乘法,其实这个标识啊,就是 x 乘上 w 一, 再加上 b 一, 完了之后呢,我们再用 re 路对它进行非限性。如果说啊,你纯粹只是学派 top 的 语法,这句话大概率是看不懂的,但是如果我们学了,我们之前就是关于神经网络的一些内容,一看就知道这其实就是限性。之后呢,用非限性激活函数把它给包裹一下,这样就能算结果了,对不对啊? 这是什么啊?输出层,输出层的时候,你的输入层的结果是不是作为输出层的下一层的输入啊?所以这个 h 呢,是我们算出来的结果,这个结果呢,再乘上输出层的权重,再加上偏置,我们不做那个 self max 变换了,因为在我们 在损失函数那一节的时候,我们是讲过,实际上损失函数就是交叉商损失的时候,它会自动给你做什么呀?做 softmax, 不 用你做了,所以说我们就保持原样的了,这次输出就好了, 再给我们的网络呢,设上一下损失函数,因为这个是一个分类问题。损失函数那一节我们讲了,如果是回归问题呢,我们就用什么呀?在回回归问题的时候,我们用 mse 就 行了,对于分类问题呢,就用交叉商, 设上损失函数之后呢,再接下来就可以。反向传播的时候,只要用排套式就比较简单了。这个我们就不带着大家一步步写反向传播的计算过程了,因为我们前面的要求,在设置参数的时候,我就说了,我是需要梯度的,他在前向传播的时候会把 过程值给暂存下来,这样呢,我在定义反向传播的时候,他是要自己会自动给算出来。应用梯度下降了, 我们也先不用用优化器,先自己来写梯度下降的过程,在梯度下降的时候,我们就不需要再重新建计算图了,所以说 with grant 就 好了,再把里面的每个参数都拿出来。参数的更新是什么呀?参数就等于参数,再加上 它的负的负梯度,乘上学习率嘛,其实就是它减上学习率,乘上它的梯度就可以了,做一下清零。因为 padach 会自动在各个半尺之间累积梯度,我们实际上每次都用一个半尺来算梯度都可以了,不用下一个半尺。其实这个是为了防止数据量太大,你一次算不完, 每算一次呢,帮你十次算出来,给你最后一次来算梯度的时候。而我们这个呢,是每个半尺算一次梯度就不用累积了,做一下清零就行了。所以这些代码是不是如果我们理解反向传播的过程,理解梯度下降的过程,实际上是非常好理解的,对不对啊? 但如果你只是从排语法的角度而言,但你能查一下这句话是什么含义,但这三行用的代码都是非常非常简单的 python 语法了,如果你不理解,梯度下降是根本就看不懂的。 我们再把所历史的损失都记一下,把用了多少样本的加一下,再看一下平均的损失,乘上样本的数量,是不是除上样本的数量,是不是平均的损失了,这样我们就评估再再给他来一轮就可以了, 这样是把他的看看啊,这是在干什么?词集上向前跑一遍,统统计一下我们的准确率大概是多少,这是都是为了后面画图啊,其实就是用我们当前算出来的结果预测一下, 每次来预测一下,看看到时候正确率大概会是多少。我们可以看到跑的几轮,每轮损失呢?大概你看了损失实际上也是逐步下降的,而我们预测的准确率呢,在逐步的提升,我们来可以画一下这个曲线来看看, 就可以看到啊,这个是随着训练轮数,每次呢每个原点就是训练的一轮,其实就是把六万个数据跑一遍, 它的损失大概会多大?它的第五轮的时候损失就已经非常小了。这个呢也是准确率,第一轮的时候准确率是百分之九十四点几,不到百分之九十五的样子, 到第五轮的时候其实准确率就已经百分之九十七了,非常高了。然后我们的 ppt 可以 看到,其实这个就是我们说的那几步啊,我们在怎么样?其实我们用了一个触手画的技巧,这个到后面我们就会去讲,这个就是我们每轮的代码了,刚才在代码中都已经看过一遍了, 有几个细节啊,再给大家提一下,输出层不要加 softmax。 为什么?其实刚才说的啊,在我们在交叉商函数里面,它自己会去做这个事情,所以我们在神经网络里面就没必要做, 因为输入层呢,我们的网络只认识每个特征都是一个特征,是不是啊?我们的表格是二十八乘二十八的,那不行,所以我们需要把它给拍平一下,把它变成七百八十四个特征输入,为此,为什么在那个,其实就是在啊,这一步的时候,在算参数更新的时候就不需要梯度了呢? 参数更新本身是不需要见图的,所以这一步就是为了放省内存的,把它清零是干什么呢?其实这是派 top 独有的特性啊,在每个半尺之间,他会相加他把 t 度,但咱们实际上是每个半尺就算一次 t 度, 这个半尺算完了,下一次就不用了,所以需要做一下清零。这个是学派 top 语法有用的,在理论学习中实际上是见不到的,所以两者稍微结合一下,但这种知识一查就能查出来。 再一个就是 backward 这一行在干什么呢?其实就是沿着我们的前向传播算出来计算图,反向的链式的求导,把张亮给一层层的算出来,这个其实就是 out type, 能够大行其道的原因啊,就是 autorend 不 用咱们自己去做。我们讲反向传播的过程中那个复杂的算式推导了, 跑出来的时候就跟咱们刚才的结论是一样的了,其实它是能做一些简单任务的, 但是呢,我们还可以用派 touch 把整个代码呢重写一下,虽然刚才我们已经用了派 touch 了,但是还是手写为主,其实派 touch 给我们提供了非常多的特性,能让我们代码变起来简单非常多, 而且我们这个网络非常的太过于简单,但对于复杂的网络还这么手写的话,其实就代码就很难读懂了。那我们看看用派 touch 的 n n 点 model, 它怎么来写呢? 实际上就会变得非常简单了。首先呢,我们写一个 class simple m l p, 让他继承恩人点 model, 继承了之后呢,看他做了几个事情啊,在出式化的时候我们干了什么呢?实际上我们做的就非常的简单了,就不用我们自己去设参数的出式化了,他有一些默认的值了, 但是呢,我们就定义了第一层这个 f c 一, 那实际上就是第一层我们干什么呢?其实就是限行层 七百八十四个输入,然后一百二十八个输出。第二层呢,其实就是我们的隐藏层了,一百二十八个输入,十个输出,其实就给了输出层了,对不对啊?我们只因为它是限性的吗?我们只需要写一下,这样就好了,这是两参数的量,多少个,多少个特征,特征值和多少个输出,这样一写就完事了,非常的简单啊。 我们再定义一下 forward, 就是 前向传播的过程,首先呢其实还是第一个,我们再把所有的特征呢,把它给拍平。之后呢,对于 ray lou, 调 ray 就是 调一下它的第一层的方法,用 ray lou 把它包裹一下,再调第二层, 第二层就没有激活函数了,直接就是一个限性的函数,调它就行了,把它的得出来了,结果 return 就 行了。跟刚才是一样的,设一下随机数,这个是一样的 model, 把 model 呢给实际化一下,我们定义一下优化器,实际上我们可以看看,虽然我们这写的是 s g d 啊,但默认就是 mini batch s g d 了, 把参数给它都传进来,学习率呢,在这手写一下还是零点一,这种时候再再定义一下它的交叉商损失,它的损失函数是什么? 先引进来就是训练过程了,训练过程的时候就是调 model, 点 print 就 可以了,这个实际上是我们刚才我们手写的那个过程的时候呢,再看看用它的时候就怎么写就行了。我们调一下优化器呢,让它清一下零, 再算一下结模型的输出是多少,算一下损失,让损失算一下,用损失函数算一下损失,损失点 backward 就是 反向传播,反向传播完了呢,用优化器, 也就是用梯度下降 step, 就 一步步的来更新一下我们的参数,再把损失加一下就行了。其实看着啊,他分别就用四句话,几乎把咱们之前讲的四个过程都给实现了,这个其实就是排套式好用的地方,其实我们最后打听一下,可以看看结果, 跟刚才实际是差不多的结论啊,但是我们的参数尺度化的不太一样,所以说结果可能略微有一些差距,但是呢,总归都是可以的。而且里面每句话呢,其实你单纯的学语法,这些语法都太简单了,都是一些函数调用吗?有什么难的呢? 那他难的就难在这一步究竟在干什么?这是深度学习里面的理论知识讲的,所以说呢,不要去学排套式语法,他语法实在量实在太大了,你记不过来的,用的时候查就行。而要学的是什么深度学习的理论。好, 再回到我们的 ppt, 对 照这个表呢,我们就看看 partouch 帮我们简化了哪些内容啊。首先就是参数的声明,我们自己去定义的,而且定义了一个数值来把参数都放进去,自己写了一些抽象的参数,而用 partouch 的 话,基本上这样一写就完事了,非常的简单。 参数的收集呢,它自动在 model 点 parameters 也都收集下来了。梯度的清零的时候呢,这样写这个其实是差不多的,只是我们用优化器点清零就行了。 参数的更新呢,也是我们自己来写这一个参数更新的过程。而如果用优化器,就是用梯度下降排套尺中的直接用优化器点 step 就 行了,它里面你如果用不同的优化器,它的计算方法是不一样的,对不对啊?我们在梯度下降及优化器里面讲了非常复杂的 adam w 计计算过程,可就不是这一句话了, 而呢,如果用 padouch 的 话,还是这一句话,再几个就是设备的搬运了,其实如果我们用一些 device 的 话, gpu 还是什么的,它也能够更好的支持,总归呢,里面没有什么新东西,只是呢计算起来更简单而已。好在接下来我们来看看我们训练的过程, 训练的结果,并且用一个手写的画板来让模型帮我们预测一下。回导弹吧看看啊,我们就是模型训练好了,那我们就来用用这个模型啊。首先第一个应用就是把我们的从 随机的抽几个测试的图片,让模型识别一下他到底是多少,如果绿色猜对了,因为我们是有标签的,我们是知道是不是猜对了,这个就非常简单了,最重要的就这一句话, 我们用模型呢来执行一下这个结果,看看他用 self max 转一下,看看算出来是多少,最大的概率的那个类是多少就行了。看看我们执行的结果,这是零啊,这是六可以看到啊,因为百分之九十七的正确率嘛,所以说基本都是能预测对的。 ok, 我 们再来现场画一个 demo, 来画一个手写的数字版,调一下模型看看,让模型来预测。这种时候呢,其实是画的时候要注意的,数字要画的大居中,而且笔画要粗,因为 minis 的 训练级的数据都是这样子的,你如果写的不太行的话,他训练准确率就会低了 啊,所以说我们正好也演示看看啊,这个如果识别的不准,也不要意外,其实就是因为第一呢,这 minis 的 数据集都是居中的,而且笔画也比较粗, 我们的手写就保证不了这一点。第二个,本身我们就写的这是一个两层的 mlp, 也没有做任何的优化,所以训练的本来就不准。 为了运行这个呢,我们需要装一个包啊,是 ipy canvas, 这个包装上之后呢,就可以看看了啊,运行这段代码,这段代码没什么好说的,大家感兴趣的话自己荡起来运行一下就行,看一下结果。 我们这样手写了,大概是一个四,是不是啊,看他识别的结果是什么四的概率呢?是啊,大一点,他还会感觉这大概会是七百分之四十四的正确率啊,清空一下,我们再预测一个,比如说,比如说我们在边角上写一个三啊, 这样的他大概率就预测不对了,因为在太边,你看,因为他没有居中嘛,也不够粗,所以他预测是七就错了。我们可以比如说啊,写个比较大大的一,这样让他预测一下, 百分之九十九是一,这样就比较简单啊,写一个,比如说写一个八,但是我们写的这个八呢,稍微奇怪一点,让他预测一下,我估计也能预测。对啊,因为这个看起来还是挺像八的, 八跟其他的也没那么像,可以看到啊,百分之九十五是八,还有一定的概率是五啊,大概还是很好玩的,是不是啊?这个就是我们讲的主要的内容了, 回头来看看啊,其实很多地方我们用的经验值其实并没有解释为什么,只是告诉大家以后要讲,其实这个确实就是后面的课程我们要讲的模型是怎么样做调优的啊?看到这个例子呢,也能方便大家理解,其实我们在写的这些,比如说呢,学习率默认就用零点一, 那么这是我们拍脑袋决定的,其实我们可以试使用不同的学习率,结果呢会有一些变化,那么什么样的初使的学习率才是最好的? 网络只有两层,深一点不是更好吗?我们如果把它加入到更深的层,为什么它就跑不起来了?这个在 cnn 到参差网络的时候会给大家讲,也会提一下参数的出场话,看看如果好的参参数的出场和不同不好的参数的出场之间的效果的对比。 我们还中间呢,我们还对数据呢做了一些归一化的操作,写了很多奇奇怪怪的数字,这些都是干什么的,去掉之后会有什么影响?我们就会在归一化中给大家讲一下,就为什么包括 transform 的 时候,为什么都会有一个层 的层,归一化的过程,这层是干什么的?如果不了解深度学习的基础,寄希望于半小时就了解 transform, 这是不现实的,因为你根本就不懂它的归一化是在干什么。 如果说我们的训练的图呢,比较少了,没有这么多了,那怎么办?训练还能比较聪明吗?我们就可以学一下正则话,这个虽然在继续学习中已经学过 l 一 l 二的正则话了,深度学习一样是能用的, 深度学习呢,还会有一个比较特殊的 jobout 今天的代码呢,其实其实就是我们之前学的深度学习的内容的全部了,三十多行代码就能让一个深度学习的模型完成一个训练的循环了。其实实际上无论是从 miniso 就是 restnight, 再到 gpt 啊,其实都大概都是这么训练的。 part 只是个工具,它只是把我们的理论,我们知道的理论呢,转成了一些常用的工具,你可以不用手写,一步步的实现了。 但是呢,深度学习才是思路。如果说我们真正难的也不是 python 的 语法,我们很多人说看不懂,看不懂这种模型的代码,我是不是要学一下 python 的 语法?完全不应该,你应该学的是深度学习的基础, 如果基础好了,再去看它里面暴露出来的这一个个的函数,会非常的简单。在接下来的几节课呢,我们也不着急进入 cnn 啊, rnn 甚至 transform, 我 们还是把怎么让模型能够训练的更好这些事情呢彻底讲清楚, 再去学 cnn sequence, two sequence 啊, rnn transformer 就 会觉得特别简单了。下节课呢,我们就先来给大家讲一下如何设一个比较好的学习率。

兄弟们,我发现这个事还是很有搞头的哈,就是用 ai 来啊,过一些验证,这样我们就不用进行抓包了。我一开始就是用这个豆包,让他直接去识别这个文字,可以看到他的识别还是非常准确的。 然后我又突发奇想,让他告诉我数字六所在的这个像素的位置,他一开始肯定是错了哈,给我的是六百三到一百五,他肯定是错了,为什么呢?因为这个尺寸才四百二十七啊,但是当我给它限定这个图片尺寸以后,他给我返回的位置是对的,所以说明这件事情还是很有搞头的。 然后接着往下这里,让他去识别这些文字的时候,比如按顺序点击某些文字的时候,呃,他给出的识别他也是错的,但是他文字的顺序和文字的这个位置从左到右的位置都是对的,总共五个文字,他识别的是五个,从左往右他都是对的, 而且这并不影响什么呢?并不影响他返回这五个文字,他的一个位置啊,他是可以给你正确的返回的,也就是说他可能文字识别错了。文字识别错,我们可以在代码里进行一些调控,因为 ocr 的 话,他会给你一个 呃,那个显示是吧?请你点击某某文字,你直接告诉他这个文字的名字就可以了,然后这个位置,呃,就让他告诉你,这样还是非常好的哈,他给的这个位还是非常的准确的,这个是错的,这是错 的。这个他给出的结果是四五零七十五,我的这个图片尺寸才这个二四九到九零。这里的话,我给他又限定了一下,又限定一下,他就是对的了。 他这个错误的话有一点比较好,虽然会错误,但是他给的这个位置呢?错的很离谱,你很容易在代码中可以判断出来,对吧?那四五零你的尺寸才二四九,那肯定是错的,所以让他重新生成。然后我感觉如果给他充足的上下文信息,他这些结果都是对的,看到没有?都是对的, 非常好的事情啊,以后,呃,这种涂色的方案会更加的安全,你也不用去抓包了,也不用去分析了,对吧?非常的安全,也非常的好用,后续可以去尝试一下各用 ai 的 这个 a p i, 来去帮我们搞一些验证,来看一下有没有搞头。今天的分享就到这里。

你盯上了一家网站的登录页,但不知道账号密码怎么办?聪明的你不小心输入了一串代码,结果又一不小心,数据库就这样出现了。挑战从零带你挖到一百个漏洞!今天我们学 c 口注入警告,本视频只在用最生动的动画演示,带你理解主流漏洞原理,帮助你无痛从零建立漏洞思维。 请各位师傅自觉遵守网安法律法规。并且为了保证各位精神股东顺利拿下赏金,进一步挖洞所需要的学习计划、视频教程和学习笔记以及工具安装包等全部无偿分享。同时也感谢大家仗义出手对视频的支持。那么接下来直接开干。首先,啥是 c 口注入? 说人话就是通过输入框递张假条子迷惑他把不该给的权限给你。想象一下,你去酒店前台办入住,正常流程是前台会先问你的身份信息以及住多久,你交代清楚以后,前台就会给你办理入住。但如果你是个坏小子, 你说我要住一天,并且把三零二的客人信息打印出来给我。如果这个前台是个铁憨憨,不分辨一下,直接把这句话原封不动告诉身边办理的同事。同事一听,既给你办理了入住,还给你白嫖了三零二的客人信息,这就是 c 口注入的本质。利用程序对输入内容的无脑信任,让他执行了额外的恶意指令。 那个铁憨憨前台就是有漏洞的网站,那个同事就是背后的数据库。为了让你彻底明白,我们来看个最经典的实战场景,不用账号密码,绕过登录验证还是这家酒店,这次你的目标是 vip 私人包间,也就是网站后台。但门口站着个保安, 也就是登录验证,他手里攥着一本 vip 会员信息,也就是数据库。正常规矩是,你得先报出名字和密码,然后保安去花名册里核对,只有两项都对上,他才会放你进去。但现在的问题是,你既不知道名字,也没有密码,花名册里压根没你这号人,这下咋办? 来看看黑客是怎么做的。他在用户名那一栏没写名字,而是填了一串咒语,艾米妮,加上一串指令。这时候,保安脑子里的查询逻辑就变味了。他原本想确认名字是艾米妮,并且密码正确吗?但现在变成了名字是艾米妮或者一等于一吗?注意了,一永远等于 一,这是宇宙真理。保安脑子一短路,哎,一确实等于一啊,这逻辑挑不出毛病。于是咔哒一声,门开了。你没输密码,却大摇大摆以管理员身份进去了。恭喜你,你了解了 cq 注入里最简单最经典的万能钥匙原理。

零二年中专生,没有团队,自学 ai, 挑战 ai, 做一百个产品。今天我们做的是火柴, 首先我们要做的是把你想要做的产品拍几张照片下来,最好的话是有几个视角,然后上传到这个工作流上来。今天这个火柴我是打算做亚马逊的,在这里只需要写上 想要几张图,什么风格, ai 会帮你补充识别这些卖点,差不多刷两个视频的功夫,他就会 识别你这个产品的人群定位,核心痛点,还有卖点,分级结构,创意概念,通通给你写出来。然后我们的抄盘手,每一张图片的文案,视觉排版,还有背景特效都会给你一个去写好写好,下一步我们就给到创意制片人,他会给到你整体 的一个视觉定调,核心风格,还有这个光影材质。最后一步,我们给到我们的审美 大师,让他去给我们批量的写出各式各样的节制,你想要多少张,他就给出你多少张。我这里做的是可以一键复制的,如果你们有一键多个提示时, 生成多张图片的也可以。我今天选的是 banana, banana 跟李梦两个去深层对比一下,基本上都要抽好多次卡。这里话不多说,我们看成片。

如何用 ai 让八十元摄像头学会认识扑克牌使用主要技术? c 加加 open 库 fun 看一看游龙。

医疗器械的数字身份证 u d i 码到底怎么申请?今天就让我利用这个视频给大家说明白。第一步,选择发码机构与申请厂商识别代码 国家药监局认可的发码机构 g s e。 中国国际通用产品出口首选中关村工信二维码研究院,国内机构适配国内监管流程阿里健康 u d i。 平台 操作便捷,适合中小批量院内流通。登录选定的发码机构在线申请厂商识别代码,并缴纳相应费用,获取系统成员证书。 第二步,生成产品 di 码。公司自行为产品分配唯一的 di 码, di 码是产品的固定标识,包含厂商和产品信息。第三步,编制 udi 码。 di 由发码机构分配,固定不变 di 企业自定义,包含生产批次、生产日期、有效期等动态信息,组合成完整 udi 码,将 di 和 pi 按规则组合,形成完整的 udi 码。 第四步,数据备案与上报登录国家药监局 udi 数据库,完成企业注册和实名认证备案。产品 di 码进入产品标识管理, 新增或批量导入产品 d i 码信息,包括产品名称、型号、注册证号等。第五步,标签制作与附码设计标签使用标签设计软件,将 u d i 码和人工识读字母设计在标签上, 附码与检测,在产品包装上打印或贴标,并检测条码质量,确保可正常识读。 第六步,数据维护与更新变更管理当产品型号、规格或包装变更时,需重新生成 d i 码,并更新数据库,定期检查,确保国家 u d i。 数据库中的信息 与实物产品一致,避免数据过期或错误。重要提示, u d i 码是产品的身份证,需确保 d i 码的唯一性和稳定性。 若产品注册证过期未延续,重新按首次注册申报时,原 udi 码不能继续使用,必须申请新的 di 码。想了解更多医疗器械知识,关注我,下期见!记得点赞、收藏、关注哦!

大家好,欢迎来到班班视频教程基础教程系列的第一课,本节课的内容是客户端配置,通过这节课,我们将会给大家介绍班班客户端中的各个配置项。软件左上角是个人中心,可以进行软件的注册和登录, 登录时可以使用验证码或是密码,但是如果安装班班的这个电脑或服务器不能联网,你需要选择离线激活方式进行登录。 离线激活是定制版功能,具体你可以咨询客服。软件首页默认是工作台配置, 这里的服务地址就是工作台的访问地址。我们点击左侧的打开工作台或是直接复制这个地址,就可以在浏览器中访问工作台默认这里会自动填入局域网 ip 上面的 ip, 这里就是系统自动识别的当前部署设备的局域网 ip, 点击右侧刷新按钮,可以重新识别。如果当前设备有多个 ip, 可以 在下拉列表中切换,切换后下方的服务地址中的 ip 也会同步更新。 如果你是局域网部署,这里的服务地址就不需要手动修改了。但是如果你是公有云部署,你需要将这里的局域网 ip 修改为服务器的固定 ip 或是绑定的域名。如果你修改了登口号,需要重启服务。 如果你切换了协议,需要重启整个软件。关于 http 和 https 协议,这里就不展开介绍了,大家可以通过 ai 工具进行了解。在企业信息这里,我们可以设置企业名称和工作台超级管理员 admin 的 密码, 企业名称会显示在工作台的很多位置,是企业的重要标识。工作台自定义是定制版的功能,主要是对工作台登录界面进行一些自定义的设置,这里打开工作台给大家参考一下 自定义的内容,包括对左上角的 logo 和这个斑斓背景图进行替换,也可以在页面底部添加版权声明和备案号等内容。自定义内容设置完成后,我们可以先点击这里进行效果预览。 在存储设置这里,我们可以修改数据的存储目录。斑斑的所有应用数据都是存在你本地的,只要不手动删除或格式化硬盘就不会丢失。 斑斑对数据量没有限制,内置的数据库也完全可以覆盖大部分的业务需求,如果你的数据量非常大,也可以切换为外部数据库, 切换后按照提示逐步设置即可。设置完成后需要重启软件,在通用设置里,我们可以设置开机启动和网络代理。 这里的打印设置主要是给打印表单数据提供服务用的,我们需要安装一个打印插件,安装完成后打印服务就可以正常启动了。系统迁移功能主要是为了更换部署系统用的, 我们可以点击导出迁移包,然后在另一个部署环境中导入这个迁移包,就可以完成整个系统的迁移了。 在系统运行过程中产生的一些缓存,包括从回收站删除的应用会保持在硬盘里,清理缓存后这些数据就会被彻底删除。 版本是完全本地私有化部署的,如果要更新软件,可以直接点击检查更新,或是在官网下载最新的安装包进行覆盖安装即可。 升级软件不会影响本地的应用数据,请大家放心。好了,今天的内容就到这里,谢谢大家。

这是用扣子做的一个风格语音翻译的网页工具,就它可以把你语音输入的废话都删掉,然后逻辑再梳理一下,现在给大家演示一下。 今天天气不错,然后我出去买了点东西,但是感觉街上人很多,然后我又去其他地方逛了一下, 然后它下面就会整理文本, 但我这个词啊不是很长的,所以它整理出来是这样的, 就它会去掉你的口水词,把它翻译成很顺的一句话,就如果你的表达里面有很多这种什么呃啊呃之类,就它会都去掉,然后和逻辑再顺一下,然后下面还加了一些风格,就你可以用其他风格啊,这下面是它原始文本, 就你看他主要就是删除,然后理顺,保持说话风格。这个跟现在不是有那种 现在有类似这种功能的一些软件啊,这个就是我自己做的,然后这次今天就给大家介绍一下这个是怎么做的啊?我看一下,特别 这个是这个是我跟这个扣子编程的沟通的沟通的内容,你看开始我是让他 做成一个网页,然后说出了这些需求,就是你需要说清楚这个你要的功能,对吧?一二三是怎么样的,这样的话他才能够操作。如果你不清楚你这个功能是怎么样的,你可以先跟先找个 ai 跟他沟通一下,把它聊清楚之后再 入到这个啊编程的资料框里面,然后他就开始做了, 他开始做,开始做,开始做,然后下面去看,就实现这些功能。然后就我们经常会遇到一个问题,就是编程之后你发现他的页面会有很多的 bug, 然后就需要修 bug, 就 又一切跟他沟通,让他去修复这一页 会有一个过程是让它修复的过程,修复优化,那中间画一边就不断的给他提需求,然后等到所有的修复完了之后,我们就可以直接部署了,部署的话就在这个地方,这里有个部署的按钮,这里部署,然后选择版本, 有版本之后,然后选择开始步数就可以了。如果你买了会员的话,你可以看到就是这个域名,你还可以修改域名, 因为现在这个会员就只有一个,只有一个他给的域名 就部署完之后他就你看就他就会有一个,又可以生成一个链接,又可以生成一个链接,这链接就可以给所有就给其他人使用,因为他就想 把这个,就把这个程序给他部署到云上,这样的话我就可以分享给其他人用。 就其实还是挺简单的,就我全程其实是没有写一行代码,就全部是在说话,这也是现在比较流行的叫什么对话编程、语言编程。然后他需要的技巧其实是两个,第一个就是要需求描述清晰,就你可以看到我这个需求描述还是比较清晰的, 这个其实怎么说呢?这个你多你多练几次就可以了,然后你有问题的话你就可以跟 ai 交流。 那么第二个的话就是啊会有一些 bug 需要修改优化,然后还有一个技巧的话,就是其实你可以让 让 ai 自己优化,就是让 ai 就 你可以问他这个网站还有什么不足,还有什么需要可以优化的地方,然后他就会给你一大堆,然后你就可以啊,按他这个给的选择你需要的。 但还有一些其他的技巧,就比如说你可以给他参考的案例,比如说我想要一个苹果风的网网站风格,然后你在有一些具体的修改的时候,比如说啊,颜色, 对,我想换个颜色,或者我希望这个输入框怎么样怎么样,就是你给他一些具体的需求,他的修改会更加的准确。 然后你还可以给他加一些约束的条件,比如说,嗯,用免费的 api 或者是生成单个的 a t m l 文件, 类似这种约束。对,大家就这样的,如果你也想做一个类似的,那你可以复制我这个,复制我这个提示词,然后改一下你的需求。好,这就是今天的分享,关注我,分享我在用的知识管理方法和 ai 工具。

之后呢,再点击转化为专业格式,就这样一下就完事了。哈喽,大家好,这是巴西,我们在写文章的时候呢,就会参考以前的文章,把这个公式也写到自己的文章里,但是很多朋友呢,现在还怎么写呢?就是公式插入, 然后呢一点一点地去把这个东西写好,把这个下标啊,这样写它的速度是比较慢的。那么有没有什么好的方法就能一下就把这个东西写完?那么如果你登录 qq 的 话呢,就可以用 ctrl alt 加 a 呃去截图,如果你登的是微信的话,就用 alt 加 a 进行截图。 总之呢,我们把这个图片截下来之后呢去给到豆包,然后呢就在里边输入帮我识别图片中的公式。接下来这句话就是原封不动,招招就行, 并且返回适用于 wps 公式的 latex demo。 呃,我们看它这个公式,它有一些问题嘛,你就接着跟它说,嗯, 没有求和符号,它修正了之后,跟你原来的公式是相符合的时候,你就可以直接复制,然后呢并在这个地方这个公式下边写,插入 latex, 然后 ctrl 加 v 复制, 之后呢再点击转化为专业格式,就这样一下就完事了。那么同样的这个事情呢,也可以在这个 deepsea 里去识别,那么我用的都是国内的 ai, 它还是比较方便的。就算啊就算,这个 就算,最终识别这个地方啊,他有一些差异啊,没有那么相似,但是我们这个时候再进行修改,他要比你就是全部都自己打的速度啊,要快很多。这个方法是我接触下来学习成本最低,并且效率提升最明显的手段之一,希望能帮到大家。