dejahu深度学习笔记00-深度学习基础

【大作业-05】手把手教你使用YOLOV5训练自己的目标检测模型-口罩检测-视频教程 手把手教你使用YOLOV5训练自己的目标检测模型 大家好,这里是肆十二(dejahu),好几个月没有更新了,这两天看了一下关注量,突然多了1k多个朋友关注,想必都是大作业系列教程来的小伙伴。既然有这么多朋友关注这个大作业系列,并且也差不多到了毕设开题和大作业提交的时间了,那我直接就是一波更新。这期的内容相对于上期的果蔬分类和垃圾识别无论是在内容还是新意上我们都进行了船新的升级,我们这次要使用YOLOV5来训练一个口罩检测模型,比较契合当下的疫情,并且目标检测涉及到的知识点也比较多,这次的内容除了可以作为大家 阅读详情

最近在看李沐老师的动手学深度学习教程,强烈安利大家去看,讲的非常通透,他会从一个常人的角度给你分析深度学习的原理,另外最近老师录制的视频是Pytorch版本的,在学习基本原理的同时还是学习到Pytorch的使用,真的是太棒了!

这期专栏我就按照我自己的理解把其中一些重点的知识做个记录,方便自己回顾,另外也会附上Python的代码,结合代码一块理解原理。

深度学习的历史

深度学习这个概念在上个世纪50年代那会就已经有了,一开始有人提出了感知机的模型,可以说是现在深度学习网络的一个雏形了,但是当时的MLP解决不了XOR的问题,就导致了第一次的AI寒冬,后面又有人提出了多层感知机解决了这个问题,并在这个基础上衍生出一系列的算法和模型,不过受限于当时计算资源的影响以及诸如卷积神经网络这些模型不具有解释性,不像svm有着很好的数学性质,在很长一段时间中,大家更喜欢研究svm而不是这些神经网络,甚至我在2016年,也是大一的时候,大家还都在研究svm,这里要吐槽一个百度,百度很多教程都比较老,大家看的时候其实有些算法和框架都过时了,但是由于那些教程的点击量比较高所以长期在搜索结果前列,导致了一个恶行循环,所以还是推荐大家通过论文啥的来关注一下你的研究领域的最新进展。

AI从低到高可以分为规划、知识、感知和地图,比较重要的应用有自然语言处理和计算机视觉,尤其是计算机视觉,比如图像分类、物体检测与分割、风格迁移、人脸合成、文字生成图片、文字生成,还有最近很火的换脸应用。我好像在b站上见过几个UP主,就是专门利用图像修复技术来修复老照片,老的视频这些。

数据操作-数组

数组的维度

数组是由维度的,可以分为下面几种:

  • 0-d 标量
  • 1-d vector 向量
  • 2-d matrix 矩阵
  • 3-d 图片,3个通道构成的彩色图片
  • 4-d 图片的批量,在上面的基础上添加了batch_size
  • 5-d 视频的批量,在视频的基础上添加了batch_size

数组的索引

比如这里的例子是对一个矩阵进行索引,第一个位置对应的是行,第二个位置对应的是列

matrix[行索引:列索引]

其中索引依次是start: stop :step

一些代码

查看torch中张量的基本信息

import torch

x = torch.arange(12)  # 产生一个张量
x = x.reshape(-1, 4)  # 改变数组的形状

print(x)  # 输出x
print(x.shape) # 输出x的形状
print(x.numel()) # 输出x的元素数量
print(x.numpy()) # 将张量转化为numpy

# 将一个标量形式的张量转化为张量,也就是0维的张量数据,这个在计算loss的时候会使用到
a = torch.tensor(6)
print(a)
print(a.item())
print(int(a))
print(float(a))

image-20210629162434418

对两个张量进行合并

# 张量之间的合并
X = torch.arange(12, dtype=torch.float32).reshape((3, 4))
Y = torch.tensor([[2.0, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])
result_0, result_1 = torch.cat((X, Y), dim=0), torch.cat((X, Y), dim=1)
print(X.shape)
print(Y.shape)
print(result_0.shape)
print(result_1.shape)

image-20210629162452113

一个比较有意思的现象是,当对两个张量进行合并的时候,这里的dim表示的就是合并的方向,如果dim为0则表示按照行的方向对张量进行合并,也就是3+3,新合成的向量结果是[6,4],如果是dim=1则结果是[3, 8]

注:在学习Pyorch的同时,matplotlib和pandas也是需要掌握的两个库,这个在pytorch学习之后需要补充一下这部分的知识。

线性代数

线性代数是卷积神经网络的基础,不过在pytorch的实际使用的时候涉及的不是很多,所以这里我就记录一些重点的概念。

需要了解的概念

  1. 哈达玛乘积

    两个矩阵按元素乘法成为哈达玛积,数学符号是圈点。两个张量直接相乘,那就是哈达玛乘积。

  2. 转置矩阵

    A_ij = A_ji 元素按照对角线的位置调换一下

  3. 内积

    矩阵乘法,点积。torch中的mv是矩阵和向量乘积,mm是矩阵和矩阵的乘积,比如一个4*3的矩阵和3*4的矩阵相乘可以得到一个4*4的矩阵

  4. L2范数

    在求解距离的时候常会用到,在权重衰减的时候也会用到,就平方和然后开根号就可以,公式如下:

    image-20210629163614450

    同样还有L1范数,那就是绝对值之和。

    image-20210629163650528

按轴求和

axis是numpy和torch中一个比较神奇的概念,很容易让人搞混,比如一张张量的shape是[2, 5, 6],这个张量其实就有3个轴,如果按照0轴进行求和,得到的新的结果的shape是[5, 6]。同理,如果你按照第1个轴进行求和,得到的新的结果的shape应该是[2, 6]。嗯,大概就是按照哪个轴进行求和,就会把哪个位置给消去。所以,这也会导致一个问题,就是当我们使用到广播机制的时候,应该保持求和之后新数组的维度不变。以下是代码示范。

# 按轴求和
A = torch.arange(20, dtype=torch.float32).reshape(5, 4)
print(A)
print(A.shape)
print(A.sum()) # 求和
print(A.mean()) # 求平均值
A_0 = A.sum(axis=0) # 按行求和
print(A_0)
print(A_0.shape)

image-20210629164501344

链式法则

前面在提到感知机的时候,说到他不能解决xor的问题,后面的解决方案是从单层的感知机变成了多层的感知机,也就是我们不能一口吃成胖子,需要先把大问题拆解为小问题然后一步步得到结果。卷积神经网络大概也是这样,卷积神经网络基于链式法则进行推导,正向传播之后反向传播求解梯度,后面的层就变成了求解梯度的梯度,他们不需要转化为具体的公式,只对具体的值负责,链式法则如下:

image-20210629164810543

在具体实现的时候,首先会将代码分解成操作子,然后将计算表示成一个无环图,显示或者隐式构造。下面是正向和反向的过程。

image-20210629164953443

下期来一起说下线性回归(回归解决的是连续的问题,比如房价的预测)

【大作业-09】基于YOLOV5的手势识别系统 我们之前做过一期基于Yolov5的口罩检测系统(手把手教你使用YOLOV5训练自己的目标检测模型-口罩检测-视频教程_dejahu的博客-优快云博客),里面的代码是基于YOLOV5 6.0开发的,并且是适用其他数据集的,只需要修改数据集之后重新训练即可,非常方便,但是有些好兄弟是初学者,可能不太了解数据的处理,所以我们就这期视频做个衍生系列,主要是希望通过这些系列来教会大家如何训练和使用自己的数据集。 本期我们带来的内容是基于YOLOV5的手势识别系统,我们将会训练得到能识别10种常用手势的模型,废话不多 阅读详情

相关推荐

【大作业-08】基于YOLOV5的火灾检测系统

我们之前做过一期基于Yolov5的口罩检测系统(),里面的代码是基于YOLOV5 6.0开发的,并且是适用其他数据集的,只需要修改数据集之后重新训练即可,非常方便,但是有些好兄弟是初学者,可能不太了解数据的处理,所以我们就这期视频做个衍生系列,主要是希望通过这些系列来教会大家如何训练和使用自己的数据集。本期我们带来的内容是基于YOLOV5的火灾检测系统,火灾检测系统还是比较有实际意义的,也方便大家在背景描述中展开。废话不多说,还是先看效果。

dejahu的博客 3万+

dejahu的深度学习学习笔记04-关于模型训练你需要了解的一些知识

前面我们讨论了线性回归、softmax分类和感知机这些模型,这些模型构建的过程都是有监督的学习,需要借助大量的样本来学习最优的参数,基本原理时通过链式法则使用梯度下降来对参数进行调整。虽然说起来比较简单,但是在实际操作的时候,模型训练需要关注很多细节,包括去模型是否会出现过拟合的现象,模型的超参数是否合理,训练的数据和验证的数据如何进行划分,这都需要进一步来探讨。今天这节我们来一起讨论一下深度学习中模型训练你需要关注的一些细节以及你需要掌握的一些基础知识。 开始之前给大家安利一下我之前写的使用tensorf

dejahu的博客 1082

【大作业-04】手把手教你构建垃圾分类系统-基于tensorflow2.3

B站视频:等待更新(b站:dejahu) 代码地址:trash_classification_tf2.3: 基于tensorflow2.3的垃圾分类系统 (gitee.com) 模型和数据集地址:垃圾分类数据集和tf代码-8w张图片245个类.zip-深度学习文档类资源-优快云下载 大家有什么想法也可以在评论区留言,我会根据留言情况出对应的教程。 哈喽,大家好,这里是dejahu,本期教程给大家带来的是基于tensorflow2.3的垃圾分类系统,主要还是为了教会大家如何使用我写好的物体分类模板代码去.

dejahu的博客 2万+

计算机视觉领域(CV)论文中“圈加”、“圈乘”和“点乘”的解释以及代码示例(⊕、⊙、⊗、广播、广播机制、element-wise、矩阵、乘法、矩阵乘法、向量)

关键词:⊕、⊙、⊗、广播、广播机制、element-wise、矩阵、乘法、矩阵乘法、向量

Le0v1n 的博客 3万+

【大作业-07】手把手教你用UNet做医学图像分割系统

兄弟们好呀,这里是肆十二,这转眼间寒假就要过完了,相信大家的毕设也要准备动手了吧,作为一名大作业区的UP主,也该蹭波热度了,之前关于图像分类和目标检测我们都出了相应的教程,所以这期内容我们搞波新的,我们用Unet来做医学图像分割。我们将会以皮肤病的数据作为示范,训练一个皮肤病分割的模型出来,用户输入图像,模型可以自动分割去皮肤病的区域和正常的区域。 B站讲解视频: 优快云博客: 代码地址:unet_42: 基于Unet的医学影像分割系统 (gitee.com) 处理好的数据集和训练好的模型: 更多相关的

dejahu的博客 12万+

【大作业】基于卷积神经网络的动物识别系统

我们之前做过一期基于Yolov5的口罩检测系统(手把手教你使用YOLOV5训练自己的目标检测模型-口罩检测-视频教程_dejahu的博客-优快云博客),里面的代码是基于YOLOV5 6.0开发的,并且是适用其他数据集的,只需要修改数据集之后重新训练即可,非常方便,但是有些好兄弟是初学者,可能不太了解数据的处理,所以我们就这期视频做个衍生系列,主要是希望通过这些系列来教会大家如何训练和使用自己的数据集。 B站视频:毕设系列-检测专题-基于YOLOV5的手势识别系统_哔哩哔哩_bilibili 博客地址:h

dejahu的博客 8039

【numpy求和】numpy.sum()求和

numpy.sum(a, axis=None, dtype=None, out=None, keepdims=, initial=)[source])用于计算array元素的和. python中常用的numpy进行数学计算,其中array的求和运算分为两种,一种是调用numpy.array自身的sum()方法,另一种是利用numpy的内建函数numpy.sum()使用。(tips:python...

TomRen 13万+

【SAP】ABAP——ALV显示后选择数据操作

在ALV显示后,可全选、全不选或者选择几条数据进行发邮件、更新、下单等等操作。 在user_command中的实现方式如下: 方式一: FORM user_command USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield. DATA: lr_grid TYPE REF TO cl_gui_alv_grid. DATA: lt_rows TYPE lvc_t_row WITH

Mona_1220的博客 4091

搞不懂 numpy.sum 请过来

numpy.sum  官方给的例子里,是一会按列求和,一会按行求和,总有种不确定感(轴axis好术语化呀,没线性代数基础完全不懂呀)那两维以上的怎么办? 先看方法说明 numpy.sum(a, axis=None, dtype=None, out=None)¶Sum of array elements over a given axis.Parameters :a : array

fencer911的专栏 3万+

CST仿真微带贴片天线学习笔记

谐振频率为3.48GHz,基板采用Rogers RT5880板材,介电常数2.2,损耗角正切0.0009,厚度1.57mm,馈电方式为同轴馈电。

qq_36521926的博客 9433

Obsidian与GPT协作:数学公式从KaTeX到MathJax的无缝转换实践

本文针对Obsidian用户从GPT等AI助手复制数学公式时遇到的KaTeX与MathJax格式不兼容问题,提供了高效的解决方案。重点介绍了KaTeX to MathJax插件的核心作用,它能自动将AI生成的KaTeX格式公式(如\(...\))无缝转换为Obsidian默认支持的MathJax格式($...$),实现复制粘贴后公式即时渲染,极大提升了数学笔记与AI协作的效率和流畅度。

weixin_29209825的博客 137

Numpy按轴计算

a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]) 如果二维数组a展示到图上就是: 因为a[0]为[1,2,3,4],a[1]为[5,6,7,8],a[2]为[9,10,11,12],所以[1,2,3,4]在0轴0的位置,[5,6,7,8]在0轴1的位置,而[9,10,11,12]在0轴2的位置。 1是a[0][0],2是a[0][1],3是a[0][2],4是a[0][3],所以[1,2,3,4]按照自己的下标顺序沿着1轴依次展开。5,6,7,8和.

piglite的专栏 1574

从零开始:使用Remix和MetaMask在测试网部署智能合约的完整指南

本文提供了一份完整的指南,教你如何使用Remix和MetaMask在测试网上部署智能合约。从环境搭建、获取测试网代币到编写和部署合约,再到与合约交互和连接Python后端,涵盖了智能合约开发的各个环节。特别适合初学者快速上手区块链开发,同时介绍了安全注意事项和调试技巧。

weixin_29019241的博客 474

dejahu的深度学习学习笔记05-Pyotrch中的深度学习计算

开始之前给大家安利一下我之前写的使用tensorflow2构建物体分类模型的博客,我在博客中详细介绍了数据集收集、模型构建和模型使用三个方面,结合视频你也可以快速构建自己的物体分类模型,快去试试吧! 手把手教你用tensorflow2.3训练自己的分类数据集_dejahu的博客-优快云博客 前面的几章内容重点讨论了模型的基本构建和一些模型训练所涉及的技巧,今天学习的课程中,在树叶分类的任务中看到不少关于比赛的技巧,不只是迁移学习那么简单,包括优化器、数据增广等方面都有讲究,后面需要专门抽时间来看下前面的房

dejahu的博客 835

WebRTC Qos优化杂记

本文是笔者对WebRTC Qos性能研究、优化的一些思考,希望对有兴趣的读者有一些启发。

sonysuqin的专栏 6678

【Unity学习笔记】事件系统EventSystem

1.EventSystem物体 第一次在Unity中创建UI元素时,总会自动生成一个EventSystem物体,它包含三个组件:Transform、EventSystem、Standalone Input Module。如果我们把它删除了,会发现UI上的事件(比如点击、拖拽)将不会被检测到。没错,它就是用来处理UI相关的事件的。 1.1 EventSystem组件 EventSystem基于输入给物体发送事件,它在整个事件系统中扮演的主要角色是: 1.管理被选中的物体 2.管理正在使用的Input Modu

一白梦人的博客 1万+

dejahu的深度学习学习笔记03-感知机和MLP|Pytorch代码实现

前面的笔记中我们讨论了线性回归和softmax分类,都可以看作是一层的全连接层,其中线性回归的输出是一个神经元,softmax的输出是多个神经元,softmax主要作用在损失函数的计算部分,相应地模型也需要学习到更多的权重。今天我们来看一下感知机(perceptron)以及感知机的进化版本,多层感知机(MLP)。 开始之前给大家安利一下我之前写的使用tensorflow2构建物体分类模型的博客,我在博客中详细介绍了数据集收集、模型构建和模型使用三个方面,结合视频你也可以快速构建自己的物体分类模型,快去试试吧

dejahu的博客 631

从接线到组态:手把手教你搞定PROFIBUS-DP与PA的混合网络搭建(基于西门子TIA Portal)

本文详细介绍了PROFIBUS-DP与PA混合网络的搭建方法,基于西门子TIA Portal平台,从硬件选型、网络架构设计到组态配置和现场调试,提供了一套完整的实战指南。重点解析了DP/PA耦合器的使用、地址映射策略及网络诊断技巧,帮助工程师高效构建高可靠性的工业自动化网络。

weixin_32103009的博客 302

dejahu的深度学习学习笔记02-softmax分类|Pytorch代码实现

上节博客中我们一起探讨了机器学习中的回归问题,回归问题主要是为了解决连续的问题,生活中还有很多应用场景不是连续的,预测的结果是离散的,比如识别一个垃圾的种类或者是识别一个花卉的具体种类,这种问题如果使用简单的线性回归是达不到目的的,这个时候就需要引入分类去解决,今天我们一起来看下如何去使用Pyotrch实现Softmax分类。 开始之前给大家安利一下我之前写的使用tensorflow2构建物体分类模型的博客,我在博客中详细介绍了数据集收集、模型构建和模型使用三个方面,结合视频你也可以快速构建自己的物体分类模

dejahu的博客 750

化工过程控制软件:Siemens PCS 7二次开发_(8).过程控制算法

在化工过程控制中,过程控制算法是实现自动化控制的关键技术之一。Siemens PCS 7 提供了丰富的控制算法库,但为了满足特定的工艺需求,往往需要进行二次开发。本节将详细介绍如何在 Siemens PCS 7 中进行过程控制算法的二次开发,包括常见的控制算法原理、实现方法和具体示例。

kkchenjj的博客 502

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

dejahu的深度学习学习笔记01-线性回归+Pytorch代码实现

机器学习简单来讲可以分为两个问题,我们都是希望能将现实中的问题进行抽象来构建数学模型,根据预测的内容,可以将问题分为回归问题和分类问题,如果预测的是连续值,那么就是回归问题,如果预测的是离散值,那么就是分类问题。比如房价的预测就是一个典型的回归问题,给出房子的面积、地理位置等基本输入,模型可以根据这些输入得到房子大概的价格。 原理介绍 ?什么是模型 大概从大一开始,就接触到模型这个概念,很多时候不不是很清楚到底啥是个模型。以为现在的理解来看,模型就是数学公式,比如我们高中学到的kx+b就是一个线性模型,在

dejahu的博客 625

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

2021年Windows下安装GPU版本的Tensorflow和Pytorch

视频教程:请等待 最近比特币的热潮慢慢褪去,显卡的价格也下来了,所以小伙伴们可以观察一下最近的行情,合适的时候可以入手几块显卡来搞深度学习。关注我的朋友大多数来自大作业怎么搞系列教程,大作业怎么搞系列使用tensorlfow训练了几个物体分类模型,在开源出的代码中我也基本给了大家我训练好的模型,有的朋友反应自己跑训练的过程的时候速度比较慢,这个原因大多都是因为大家是在CPU环境下来跑的,所以速度不是很快,如果使用GPU来跑训练的话,效率上差不多是CPU的10倍。 !!!注:深度学习的小伙伴请选择Nvidia

dejahu的博客 5万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

YOLOv5实战-GPU版本的pytorch虚拟环境配置

其实TensorFlow环境也可以,但是本人实践下来发现不仅操作多,而且遇到的问题一堆无法解决,反复喂给DS还是无济于事,所以索性用pytorch了,不过。虚拟环境可以使各个深度学习框架之间不发生冲突,所以一般是用虚拟环境的(因为我看b站上很多不是教你配虚拟环境的)属于比较新的显卡配置,目前网上相关资料比较少,如果你和我加粗文字配置一样的话可以直接抄。如果还有问题,建议看看其他文章(但是都是几年前的文章了,很多不适用)如果你之前有配置过虚拟环境但是失败了,可以先清理一下。查看你的配置nvidia-smi。

HUIMU的博客 506

目标检测数据集清单-附赠YOLOV5模型训练和使用教程

目标检测数据集清单-附赠YOLOV5模型训练和使用教程 先占坑,后续更新 找到我 你可以通过这些方式来寻找我。 B站:肆十二- 优快云:肆十二 知乎:肆十二 微博:肆十二- 现在关注以后就是老朋友喽! ...

dejahu的博客 2万+

最新手把手教你用UNet做医学图像分割系统_unet医学图像分割,2024年大数据开发者未来的出路在哪里

数据处理部分,医学影像这块我们一般使用公开的数据集,如果没有合适的数据集大家也可以选择自己进行标注,分割相对于检测而言标注起来比较麻烦,所以能找到公开的数据集最好使用公开的数据集,这里是本期我们要用到的数据集。以下面的皮肤病数据集为例,其中左侧是原始图片,右侧是标注之后的标签,因为标签有两种像素值,背景为0,皮肤病区域为1,所以我们肉眼上看到的标签图片是全黑,但是实际上这些标签文件中的值是不一样的。为图片以及LabelMe产出的json文件所在文件夹的目录,同时也是转换后的标注集所在文件夹的目录。

2401_84182271的博客 1694

基于python的垃圾分类程序,提供数据集(pytorch开发)

如果不想看文字,可以看视频嗷,后面应该会更新垃圾分类的视频的! 【大作业怎么搞01】基于tensorflow2.3的花卉识别程序_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 垃圾分类是目前社会的一个热点,分类的任务是计算机视觉任务中的基础任务,相对来说比较简单,只要找到合适的数据集,垃圾分类的模型构建并不难,这里我找到一份关于垃圾分类的数据集,一共有四个大类和245个小类,大类分别是厨余垃圾、可回收物、其他垃圾和有害垃圾,小类主要是垃圾的具体类别,果皮、纸箱等。 为了方便大家使用,我已经提前将.

dejahu的博客 1万+
上一篇: 【大作业-04】手把手教你构建垃圾分类系统-基于tensorflow2.3
下一篇: 2021年Windows下安装GPU版本的Tensorflow和Pytorch
肆十二
肆十二 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域
博客等级 码龄9年 2万+粉丝 241原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆十二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值