9、性能问题 1)页面加载慢,延迟超过3秒 2)占用CPU、内存的大小,内存泄漏 10、安全相关 1)IP和端口号要改为域名显示 2)SQL注入测试 3)服务器安全问题 阿常碎碎念: 以上原内容来自网络检索
引 之前需要做一个图像分类模型,因为刚入门,拿cifar10数据集练了下手,试了几种优化方案和不同的模型效果,这里就统一总结一下这段学习经历。 cifar10是是一个图像数据集(官网),包含10种类别的32*32大小的图像共60000张。另外还有cifar100,包含100种类别的更多图像。因此,cifar10分类就是一个图像多分类任务。 因此,本文要说的就是使用Keras框架来开发多种模型和优化方法去训练一个基于cifar10数据集的图像多分类模型。 最后就是接上输出层了,这层的神经元数量我们用分类数来表示,在cifar10中就是10类,最后的激活函数我们用softmax,这个函数适合多分类任务,sigmoid适合二分类任务。 完整的代码可以看我的github 结 以上,就是用Keras实验各种模型和优化方法来训练cifar10图像分类了,我认为这是一个很好的入手深度学习图像分类的案例,而Keras也是一个很好上手的框架,在这段学习过程中我受益良多
如果是进行百万张图片的分类,每个图片都有数以百万计的特征,我们将拿到一个 百万样本 x 百万特征 的巨型矩阵。传统的机器学习方法拿到这个矩阵时,受限于计算机内存大小的限制,通常是无从下手的。 实战项目——CIFAR-10 图像分类 最后我们用一个keras 中的示例, 本文源码地址: 关注微信公众号datayx 然后回复“图像分类”即可获取。 首先做一些前期准备: ?
介绍 文章对已知的多种细胞系混合后进行单细胞10X RNA测序,研究多克隆之间的互作模式。我们这里介绍里面的单细胞测序基因表达细胞分类操作。 不过文章选用的是已知固有SNP进行分类,基因表达分类用于和SNP分类进行比较。 = 'pca', dims = 1:n_pcs, k.param = 10 FindClusters(seuObj, resolution = clust_res, verbose = FALSE) 原文出处 http://www.thecodesearch.com/2021/02/04/10x 单细胞测序细胞分类/
公众号:尤而小屋作者:Peter编辑:Peter大家好,我是Peter~机器学习分类模型的评价指标是在衡量模型在未知数据集上的性能表现,通常基于混淆矩阵和相关的评价指标。 最近建立了一个分类模型,在选择评价指标的时候进行了对比不同指标之间,同时也查阅了很多的资料和博客,发现了一个问题:Accuracy是准确率,Precision是精确率;还是说反过来? 于是我问了ChatGPT:机器学习分类模型中哪个代表准确度,accuracy 还是Precision? 下面小编就从混淆矩阵开始,给大家详细介绍下机器学习分类模型中的多个评价指标。混淆矩阵Confusion Matrix开局一张图:图片其中,Pos代表Positive,Neg代表Negative。 ROC曲线越是接近左上角,表示分类器的性能越好,其真阳性率和假阳性率之间的平衡越好;如果AUC值接近0.5,则表示分类器的性能较差。
经过前面的数据加载和网络定义后,就可以开始训练了,这里会看到前面遇到的一些东西究竟在后面会有什么用,所以这一步希望各位也能仔细研究一下
之前讲SVM的算法:https://www.jianshu.com/p/8fd28df734a0 线性分类 线性SVM就是一种线性分类的方法。输入 ? ,输出 ? ,每一个样本的权重是 ? 得到的结果很明显是dog分数最大,cat的分数最低,但是图片很明显是猫,什么分类器是错误的。 一般来说习惯会把w和b合并了,x加上一个全为1的列,于是有 ? ? 所以正确的分类score应该是要大于其他的分类score一个阈值: ? ? 就是正确分类的分数, ? 就是其他分类的分数。所以,这个损失函数就是: ? 代码实现 首先是对CIFAR10的数据读取: def load_pickle(f): version = platform.python_version_tuple() if version /Data/cifar-10-batches-py' x_train, y_train, x_test, y_test = loadCIFAR10(cifar10_name) X_val
数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):1129 分类类别数:10 类别名称:["avulsion_fracture
之前讲SVM的算法:https://www.jianshu.com/p/8fd28df734a0 线性分类 线性SVM就是一种线性分类的方法。输入 ? ,输出 ? ,每一个样本的权重是 ? 得到的结果很明显是dog分数最大,cat的分数最低,但是图片很明显是猫,什么分类器是错误的。 一般来说习惯会把w和b合并了,x加上一个全为1的列,于是有 ? ? 所以正确的分类score应该是要大于其他的分类score一个阈值: ? ? 就是正确分类的分数, ? 就是其他分类的分数。所以,这个损失函数就是: ? 代码实现 首先是对CIFAR10的数据读取: def load_pickle(f): version = platform.python_version_tuple() if version /Data/cifar-10-batches-py' x_train, y_train, x_test, y_test = loadCIFAR10(cifar10_name) X_val
那么本文就将带领大家动手写出自己的SVM程序,并且应用到图像的分类问题中。我们将在经典的CIFAR10图像数据集上进行SVM程序验证。 话不多说,正式开始! 1. 以二维平面为例,确定一条直线对正负样本进行分类,如下图所示: ? 很明显,虽然分类线H1、H2、H3都能够将正负样本完全分开,但是毫无疑问H3更好一些。 这就是SVM的基本思想:尽量让所有样本距离分类超平面越远越好。 2. 线性分类与得分函数 在线性分类器算法中,输入为x,输出为y,令权重系数为W,常数项系数为b。 所以说,Δ=1Δ=1\Delta=1 或 Δ=10Δ=10\Delta=10,实际上没有差别,对W的伸缩完全可以抵消掉 ΔΔ\Delta 的数值影响。因此,通常把 ΔΔ\Delta 设置为1即可。 线性SVM实战 首先,简单介绍一下我们将要用到的经典数据集:CIFAR-10。 CIFAR-10数据集由60000张3×32×32的 RGB 彩色图片构成,共10个分类。
(10).全连接层1+ReLU+Dropout:有4096个神经元,训练参数(6*6*256)*4096=37748736。 dataset_train = CIFAR10(root='. /data', train=True, download=True, transform=transformers) dataset_test = CIFAR10(root='. optimizer.zero_grad() # 保存训练结果 outputs = model(inputs).to(device) # 计算损失和 # 多分类情况通常使用 cross_entropy(交叉熵损失函数), 而对于二分类问题, 通常使用sigmod loss = F.cross_entropy(outputs, labels) # 获取最大概率的预测结果
3、添加两个辅助分类器帮助训练 避免梯度消失,用于向前传导梯度,也有一定的正则化效果,防止过拟合。 图片 具体代码如下,因为里面的层数太多,所以在此就不做推算了: classGoogLeNet(nn.Module): def __init__(self, num_classes=10
out # ResNet定义 classResNet(nn.Module): def __init__(self, block, layers, num_classes=10 avg_pool): AvgPool2d(kernel_size=3, stride=1, padding=1) (fc): Linear(in_features=2048, out_features=10
通过卷积、池化等操作进行特征提取,最后利用全连接实现分类识别。 LeNet5包含 3 个卷积层,2 个池化层,1 个全连接层。 下面是他的网络结构示意图: CIFAR-10数据集由10个类别的60000张32x32彩色图像组成,每个类别有6000张图像。有50000个训练图像和10000个测试图像。 # 输出为:16* 10* 10= 4704 self.maxpool2 = nn.MaxPool2d(2, 2) # output_size = 10/ 2= 5 # optimizer.zero_grad() # 保存训练结果 outputs = model(inputs).to(device) # 计算损失和 # 多分类情况通常使用 cross_entropy(交叉熵损失函数), 而对于二分类问题, 通常使用sigmod loss = F.cross_entropy(outputs, labels) # 获取最大概率的预测结果
nn.ReLU(inplace=True), nn.Dropout(0.5), nn.Linear(128, 10 def DenseNet121(): return DenseNet([6, 12, 24, 16], growth_rate=32, reduction=0.5, num_classes=10 def DenseNet169(): return DenseNet([6, 12, 32, 32], growth_rate=32, reduction=0.5, num_classes=10 def DenseNet201(): return DenseNet([6, 12, 48, 32], growth_rate=32, reduction=0.5, num_classes=10 关于图像分类的模型算法,热情也没了,到此也就告一段落了,后续再讨论一些新的话题。
该数据集利用独特的 LUCAS 2018 哥白尼原位调查,是欧盟第一个基于 2018 年 S1A 和 S1B 合成孔径雷达观测的 10m 像素大小的大陆作物类型图。 数据集可用性 2018-01-01T00:00:00Z–2019-01-01T00:00:00 地球引擎片段 ee.ImageCollection("JRC/D5/EUCROPMAP/V1") 分辨率 10 米 波段 姓名 描述 classification 主要作物特定土地覆盖分类。 分类类表 价值 颜色 描述 211 a57000 普通小麦 212 896054 硬质小麦 213 e2007c 大麦 214 aa007c 黑麦 215 a05989 燕麦 216 ffd300 玉米 image = ee.Image('JRC/D5/EUCROPMAP/V1/2018'); Map.addLayer(image, {}, 'EUCROPMAP 2018'); Map.setCenter(10
这场冠军奖金高达30,000美元(排在其后的4个队伍的奖金为25,000、20,000、15,000、10,000美元)的挑战赛要求开发人员对来自更新后的 YouTube-8M V2 数据集的视频进行分类和加标签 尽管开发人员并不会把它用于这个新的挑战赛中,但是它清楚地显示了谷歌对于视频分类的兴趣。毕竟仍在不停壮大的 Youtube 可能要比谷歌大多数搜索引擎上的竞争对手执行过更多的搜索。
数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):22424 分类类别数:10 类别名称:["c0 开车左手打电话 c5:开车右手操作 c6:开车右手端水杯喝水 c7:开车右边侧身 c8:开车右手触头 c9:开车右侧头 特别声明:本数据集不对训练的模型或者权重文件精度作任何保证,数据集只提供准确且合理分类存放
AIEarth中国10米地物分类数据集(AIEC) 简介与Notebook示例¶ 达摩院AI Earth团队自研的中国区10m分辨率地物分类产品,数据包含2020-2022年中国逐年土地覆盖信息。 AI EarthSentinel地物分类中国年度产品 AI Earth中国10米地物分类数据集(AIEC)是一个用于地物分类的数据集。 该数据集包含了中国范围内的高分辨率遥感影像,并对影像中的地物进行分类。前言 – 人工智能教程 AIEC数据集的分辨率为10米,覆盖了中国的各个地区。 数据集中的地物分类包括建筑物、道路、水体、农田、森林等。这些分类信息有助于各种应用和研究,如城市规划、土地利用、环境监测等。 AIEC数据集是由人工智能技术自动进行地物分类得到的,具有较高的准确性和可靠性。数据集可以用于训练和评估地物分类模型,以提高地物分类的精度和效果。
又到整理的时候了,这次参考torchvision里面的resnet34源代码,自己修改了一下,实现cifar10数据集的分类任务。 ResNet34大体结构: 图片:来自《深度学习框架PyTorch:入门与实践》 PyTorch 使用 torchvision 自带的 CIFAR10 数据实现。 _make_layer(64, 64, 3, stride=1) self.fc = nn.Linear(256, num_classes) # 分类用的全连接 def _make_layer(self correct, total = .0, .0 for x, y in testloader: net.eval() py = net(x) _, predicted = t.max(py, 1) # 获取分类结果 total += y.size(0) # 记录总个数 correct += (predicted == y).sum() # 记录分类正确的个数 return float(correct) / total