使用perming加速训练可预测的模型
监督学习模型的训练流程
perming是一个主要在支持CUDA加速的Windows操作系统上架构的机器学习算法,基于感知机模型来解决分布在欧式空间中线性不可分数据集的解决方案,是基于PyTorch中预定义的可调用函数,设计的一个面向大规模结构化数据集的通用监督学习器,v1.4.2之后支持检测验证损失的变化间隔并提前停止训练。
pip install perming --upgrade
pip install perming>=1.4.2
数据清洗后的特征输入
在常见的自动化机器学习管线中,一组原始结构化数据集是经过一系列函数式的数据清洗操作后,得到了固定特征维度的特征数据集,但是该特征数据集没有专用的线性不可分检测方式以及相应的线性可分空间指定,所以需要用户指定潜在的线性可分空间的大小以及一些组合的学习参数。以下是以perming.Box为例展开机器学习训练的案例:
import numpy
import pandas
df = pandas.read_csv('../data/bitcoin_heist_data.csv')
df = df.to_numpy()
labels = df[:,-1] # input
features = df[:,1:-1].astype(numpy.float64) # input
此处下载数据集
加载perming并配置超参数
import perming # v1.6.0
main = perming.Box(8, 29, (60,), batch_size=256, activation='relu', inplace_on=True, solver='sgd', learning_rate_init=0.01)
main.print_config()
MLP((mlp): Sequential((Linear0): Linear(in_features=8, out_features=60, bias=True)(Activation0): ReLU(inplace=True)(Linear1): Linear(in_features=60, out_features=29, bias=True))
)
Out[1]: OrderedDict([('torch -v', '1.7.1+cu101'),('criterion', CrossEntropyLoss()),('batch_size', 256),('solver',SGD (Parameter Group 0dampening: 0lr: 0.01momentum: 0nesterov: Falseweight_decay: 0)),('lr_scheduler', None),('device', device(type='cuda'))])
参考这里查看每个模型的参数文档
从numpy.ndarray多线程加载数据集
main.data_loader(features, labels, random_seed=0)
# 参考main.data_loader.__doc__获取更多默认参数的信息
训练阶段和加速验证
main.train_val(num_epochs=1, interval=100, early_stop=True)
# 参考`main.train_val.__doc__`获取更多默认参数的信息,例如tolerance, patience
Epoch [1/1], Step [100/3277], Training Loss: 2.5657, Validation Loss: 2.5551
Epoch [1/1], Step [200/3277], Training Loss: 1.8318, Validation Loss: 1.8269
Epoch [1/1], Step [300/3277], Training Loss: 1.2668, Validation Loss: 1.2844
Epoch [1/1], Step [400/3277], Training Loss: 0.9546, Validation Loss: 0.9302
Epoch [1/1], Step [500/3277], Training Loss: 0.7440, Validation Loss: 0.7169
Epoch [1/1], Step [600/3277], Training Loss: 0.5863, Validation Loss: 0.5889
Epoch [1/1], Step [700/3277], Training Loss: 0.5062, Validation Loss: 0.5086
Epoch [1/1], Step [800/3277], Training Loss: 0.3308, Validation Loss: 0.4563
Epoch [1/1], Step [900/3277], Training Loss: 0.3079, Validation Loss: 0.4204
Epoch [1/1], Step [1000/3277], Training Loss: 0.4298, Validation Loss: 0.3946
Epoch [1/1], Step [1100/3277], Training Loss: 0.3918, Validation Loss: 0.3758
Epoch [1/1], Step [1200/3277], Training Loss: 0.4366, Validation Loss: 0.3618
Process stop at epoch [1/1] with patience 10 within tolerance 0.001
使用内置的返回项来预测评估模型
main.test()
# main.test中的默认参数只在一维标签列的分类问题中作用
# 因为损失衡量函数广泛且众多,以torcheval中的策略为主
loss of Box on the 104960 test dataset: 0.3505959212779999.
Out[2]: OrderedDict([('problem', 'classification'),('accuracy', '95.99942835365853%'),('num_classes', 29),('column', ('label name', ('true numbers', 'total numbers'))),('labels',{'montrealAPT': [100761, 104857],'montrealComradeCircle': [100761, 104857],'montrealCryptConsole': [100761, 104857],'montrealCryptXXX': [100761, 104857],'montrealCryptoLocker': [100761, 104857],'montrealCryptoTorLocker2015': [100761, 104857],'montrealDMALocker': [100761, 104857],'montrealDMALockerv3': [100761, 104857],'montrealEDA2': [100761, 104857],'montrealFlyper': [100761, 104857],'montrealGlobe': [100761, 104857],'montrealGlobeImposter': [100761, 104857],'montrealGlobev3': [100761, 104857],'montrealJigSaw': [100761, 104857],'montrealNoobCrypt': [100761, 104857],'montrealRazy': [100761, 104857],'montrealSam': [100761, 104857],'montrealSamSam': [100761, 104857],'montrealVenusLocker': [100761, 104857],'montrealWannaCry': [100761, 104857],'montrealXLocker': [100761, 104857],'montrealXLockerv5.0': [100761, 104857],'montrealXTPLocker': [100761, 104857],'paduaCryptoWall': [100761, 104857],'paduaJigsaw': [100761, 104857],'paduaKeRanger': [100761, 104857],'princetonCerber': [100761, 104857],'princetonLocky': [100761, 104857],'white': [100761, 104857]}),('loss',{'train': 0.330683171749115,'val': 0.3547004163265228,'test': 0.3505959212779999}),('sorted',[('montrealAPT', [100761, 104857]),('montrealComradeCircle', [100761, 104857]),('montrealCryptConsole', [100761, 104857]),('montrealCryptXXX', [100761, 104857]),('montrealCryptoLocker', [100761, 104857]),('montrealCryptoTorLocker2015', [100761, 104857]),('montrealDMALocker', [100761, 104857]),('montrealDMALockerv3', [100761, 104857]),('montrealEDA2', [100761, 104857]),('montrealFlyper', [100761, 104857]),('montrealGlobe', [100761, 104857]),('montrealGlobeImposter', [100761, 104857]),('montrealGlobev3', [100761, 104857]),('montrealJigSaw', [100761, 104857]),('montrealNoobCrypt', [100761, 104857]),('montrealRazy', [100761, 104857]),('montrealSam', [100761, 104857]),('montrealSamSam', [100761, 104857]),('montrealVenusLocker', [100761, 104857]),('montrealWannaCry', [100761, 104857]),('montrealXLocker', [100761, 104857]),('montrealXLockerv5.0', [100761, 104857]),('montrealXTPLocker', [100761, 104857]),('paduaCryptoWall', [100761, 104857]),('paduaJigsaw', [100761, 104857]),('paduaKeRanger', [100761, 104857]),('princetonCerber', [100761, 104857]),('princetonLocky', [100761, 104857]),('white', [100761, 104857])])])
保存模型参数到本地
main.save(con=False, dir='../models/bitcoin.ckpt')
# 使用main.unique和main.indices来建立标签的双向转换
加载模型参数到预训练算法
main.load(con=False, dir='../models/bitcoin.ckpt')
加载模型后可以通过更改组合训练参数,例如优化器等来微调模型的训练。模型训练文件见Multi-classification Task.ipynb
其他常用的模型初始化设置
main = perming.Box(10, 3, (30,), batch_size=8, activation='relu', inplace_on=True, solver='sgd', criterion="MultiLabelSoftMarginLoss", learning_rate_init=0.01)
# 用于解决多标签排序问题,在用户定义标签的双向转换之后,data_loader能检测划分数据集并封装
使用如下访问该软件的测试和算法:
git clone https://github.com/linjing-lab/easy-pytorch.git
cd easy-pytorch/released_box
相关文章:
使用perming加速训练可预测的模型
监督学习模型的训练流程 perming是一个主要在支持CUDA加速的Windows操作系统上架构的机器学习算法,基于感知机模型来解决分布在欧式空间中线性不可分数据集的解决方案,是基于PyTorch中预定义的可调用函数,设计的一个面向大规模结构化数据集的…...
【数据库】存储引擎InnoDB、MyISAM、关系型数据库和非关系型数据库、如何执行一条SQL等重点知识汇总
目录 存储引擎InnoDB、MyISAM的适用场景 关系型和非关系型数据库的区别 MySQL如何执行一条SQL的 存储引擎InnoDB、MyISAM的适用场景 InnoDB 是 MySQL 默认的事务型存储引擎,只有在需要它不支持的特性时,才考虑使用其它存储引擎。实现了四个标准的隔…...
车道线分割检测
利用opencv,使用边缘检测、全局变化梯度阈值过滤、算子角度过滤、HLS阈值过滤的方法进行车道线分割检测,综合多种阈值过滤进行检测提高检测精度。 1.利用cv2.Sobel()计算图像梯度(边缘检测) import cv2 import numpy as np import matplotlib.pyplot a…...
树莓集团又一力作,打造天府蜂巢成都直播产业园样板工程
树莓集团再次推出惊艳之作,以打造成都天府蜂巢直播产业园为目标。该基地将充分展现成都直播产业园的巨大潜力与无限魅力,成为一个真正的产业园样板工程。 强强联手 打造未来 成都天府蜂巢直播产业园位于成都科学城兴隆湖高新技术服务产业园内࿰…...
ubuntu 软件包管理之二制作升级包
Deb 包(Debian 软件包)是一种用于在 Debian 及其衍生发行版(例如 Ubuntu)中分发和安装软件的标准包装格式。它们构成了 Debian Linux 发行版中的软件包管理系统的核心组成部分,旨在简化软件的分发、安装、更新和卸载流程。在本篇文章中,我们将深入探讨以下内容: Deb 包基…...
TCP/IP网络江湖——数据链路层的防御招式(数据链路层下篇:数据链路层的安全问题)
目录 引言 一、 数据链路层的隐私与保密 二、数据链路层的安全协议与加密...
ios项目安装hermes-engine太慢问题
问题说明 ios工程,在使用"pod install"安装依赖的时候,由于超时总是报错 $ pod install ... Installing hermes-engine (0.71.11)[!] Error installing hermes-engine [!] /usr/bin/curl -f -L -o /var/folders/4c/slcchpy55s53ysmz_1_q_gzw…...
构建个人云存储:本地电脑搭建SFTP服务器,开启公网访问,轻松共享与管理个人文件!
本地电脑搭建SFTP服务器,并实现公网访问 文章目录 本地电脑搭建SFTP服务器,并实现公网访问1. 搭建SFTP服务器1.1 下载 freesshd 服务器软件1.3 启动SFTP服务1.4 添加用户1.5 保存所有配置 2. 安装SFTP客户端FileZilla测试2.1 配置一个本地SFTP站点2.2 内…...
springboot 下载文件为excel数据,中文自定义单元格宽度
/**2 * Description:表格自适应宽度(中文支持)3 * Author: 4 * param sheet sheet5 * param columnLength 列数6 */7 private static void setSizeColumn(HSSFSheet sheet, int columnLength) {8 for (int columnNum 0; columnNum < …...
机器学习 面试/笔试题
1. 生成模型 VS 判别模型 生成模型: 由数据学得联合概率分布函数 P ( X , Y ) P(X,Y) P(X,Y),求出条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)的预测模型。 朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模型(LDA)、限制玻尔兹曼机…...
某企查ymg_ssr列表详情
js篇— 今天来看下某企查的列表详情–侵删 header发现这个参数 先断点一下 然后上一步 就到了这个地方 就开始扣一下这个js 三大段,先不解混淆了, 给a粘贴出来 ,去掉自执行 给结果稍微改一下 缺windows,开始补环境 直接上…...
使用YOLOv5的backbone网络识别图像天气 - P9
目录 环境步骤环境设置包引用声明一个全局的设备 数据准备收集数据集信息构建数据集在数据集中读取分类名称划分训练、测试数据集数据集划分批次 模型设计编写维持卷积前后图像大小不变的padding计算函数编写YOLOv5中使用的卷积模块编写YOLOv5中使用的Bottleneck模块编写YOLOv5…...
TikTok海外扩张:亚马逊的新对手崛起
随着社交媒体和电子商务的融合,TikTok正迅速崭露头角,成为亚马逊等传统电商巨头的潜在竞争对手。这一新兴平台的快速发展引发了广泛的关注,特别是在全球范围内。 在这篇文章中,我们将探讨TikTok海外扩张的战略,以及它…...
CSS详细基础(五)选择器的优先级
本节介绍选择器优先级,优先级决定了元素最终展示的样式~ 浏览器是通过判断CSS优先级,来决定到底哪些属性值是与元素最为相关的,从而作用到该元素上。CSS选择器的合理组成规则决定了优先级,我们也常常用选择器优先级来合理控制元素…...
LLM-TAP随笔——有监督微调【深度学习】【PyTorch】【LLM】
文章目录 5、 有监督微调5.1、提示学习&语境学习5.2、高效微调5.3、模型上下文窗口扩展5.4、指令数据构建5.5、开源指令数据集 5、 有监督微调 5.1、提示学习&语境学习 提示学习 完成预测的三个阶段:提示添加、答案搜索、答案映射 提示添加 “[X] 我感到…...
kafka伪集群部署,使用docker环境拷贝模式
线上启动容器的方式是复制容器的运行环境出来,然后进行运行脚本的形式 1:在home/kafka目录下创建如下目录 2:复制kafka1容器内的数据/bitnami/kafka/data,直接放在1992_data里面,同理,复制kafka2容器内的数据/bitnami/…...
工业交换机一般的价格是多少呢?
工业交换机是一种应用于工业领域的网络设备。它的性能和所有安全指标都比一般商业交换机更加稳定。所以,工业级交换机的价格相对于普通的交换机要稍稍昂贵一些。工业交换机一般的价格是多少呢?每个厂家的交换机价格是不是都一样呢? 首先&…...
QT使用前的知识
QT使用前的知识 常用的快捷键 源文件的内容解释 .pro文件的解释 头文件的解释 构建新的对象—组成对象树 槽函数 自定的信号和槽 槽函数的信号是一个重载函数时 电机按钮触发信号 调用无参数的信号 断开信号...
Unity制作旋转光束
Unity制作旋转光束 大家好,我是阿赵。 这是一个在很多游戏里面可能都看到过的效果,在传送门、魔法阵、角色等脚底下往上散发出一束拉丝形状的光,然后在不停的旋转。 这次来在Unity引擎里面做一下这种效果。 一、准备材料 需要准备的素材很简…...
考研王道强化阶段(二轮复习)“算法题”备考打卡表 记录
问题:做408真题_2010_42题,即王道书 2.2.3_大题_10 思路: 回头补 代码: int moveL(SqlList &L,SqlList &S,int p) {// 健壮性表达if( L.len 0 ){return 0;}// 调用另外一个顺序表存储pos前面的元素for( int i0;i<p;…...
UE4/5数字人MetaHuman通过已有动画进行修改
目录 通过已有动画修改动画 开始制作 创建一个关卡序列 将动画序列烘焙到控制绑定 打开我们自己创建的动画序列 之后便是烘焙出来 通过已有动画修改动画 首先架设我们已经有相关的MetaHuman的动画,但是这个动画因为是外部导入进来的,所以可能会出…...
在Mac M2本地注册GitLab runner
最近在搞公司的CI/CD,简单记录下部分过程 安装runner sudo curl --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-arm64" 创建runner 这个步骤需要在gitlab中进行&am…...
「大数据-2.2」使用命令操作HDFS文件系统
目录 一、HDFS文件系统基本信息 1. HDFS的路径表达形式 2.HDFS和Linux的根目录的区分 二、 使用命令操作HDFS文件系统 0. Hadoop的两套命令体系 1. 创建文件夹 2. 查看指定目录下内容 3. 上传文件到HDFS指定目录下 4. 查看HDFS文件内容 5. 下载HDFS文件 6. 拷贝HDFS文件 7.…...
面试买书复习就能进大厂?
大家好,我是苍何。 现在进大仓是越来越难了,想通过简单的刷题面试背书,比几年前难的不少, 但也并非毫无希望,那究竟该如何准备才能有希望进大厂呢? 我总结了 4 点: 1、不差的学历背景 2、丰富…...
使用Http Interface客户端解析text/html类型参数
前言 Spring6和Spring Boot3的正式发布也有一段时间了,最低支持的java版本也是直接跳到了17。而且最近java21也出来了,作为一个javaer,你不会还在坚守java8吧? Http Interface是Spring6新推出的一个声明式http客户端,…...
Linux - linux命令进阶
打包压缩解压 基本概述 打包 将多数文件或目录汇总成一个整体 打包默认没有压缩功能,不节省磁盘空间 压缩 将大文件压缩成小文件 可以节省磁盘空间 打包压缩 将一堆零散的文件打包到一起,然后再压缩,可以节省磁盘空间 打包命令 命令格式 ta…...
排序篇(一)----插入排序
1.直接插入排序 插入排序的思想: 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。 你可以想像成打牌一样,比如说斗地主,一张一张的摸牌,然后把手上的这些牌变成手续的排列.…...
通俗讲解深度学习轻量网络MobileNet-v1/v2/v3
MobileNet网络是由google团队在2017年提出的,专注于移动端或者嵌入式设备中的轻量级CNN网络。相比传统卷积神经网络,在准确率小幅降低的前提下大大减少模型参数与运算量。(相比VGG16准确率减少了0.9%,但模型参数只有VGG的1/32)。MobileNet网络…...
mmpretrain学习笔记
深度学习模型的训练涉及几个方面 1、模型结构:模型有几层、每层多少通道数等 2、数据:数据集划分、数据文件路径、批大小、数据增强策略等 3、训练优化 :梯度下降算法、学习率参数、训练总轮次、学习率变化策略等 4、运行时:GPU、…...
rhel8 网络操作学习
一、查询dns服务器地址汇总 1.查询dns服务器地址: (1)方法一:执行命令 cat /etc/resolv.conf 执行结果如下: nameserver后面就是dns服务器的ip地址。 (2)方法2:查看/etc/syscon…...
食品品牌推广方案/广东网站se0优化公司
IBM全球服务中心最近发布的一份白皮书描述了IBM技术研究院(Academy of Technology)为取得SOA实施的成功所运用的经验。具体地讲,他们关注于以下五个优先考虑事项: 以面向未来的眼光进行架构开发——对SOA实施来说,最需…...
做ppt时网站怎么设计/无锡网站制作优化
Spring框架对于Java后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,但了解之后才知道有很多巧妙的设计在里面。如果不看Spring的源码,你将会失去一次和大师学习的机会:它的代码规范,设计思想很值得学习。我们…...
视频网站如何做引流/手机百度app最新版下载
兄弟姐妹们好,又是好久没有更新了,今天给大家简单介绍代理模式,一个很简单的设计模式,旨在不改变原对象的情况下通过代理对象来控制对原对象的访问。代理模式根据具体情况还可以分为远程代理、虚拟代理、保护代理等,下…...
哪些企业网站做的好/企业官网首页设计
知识回顾:当鼠标在窗口内移动,点击或者释放时都会产生WM_NCHITTEST消息,响应函数OnNcHitTest会返回一个枚举值,系统会根据这个枚举值进行相应的处理。 当返回值为HTCAPTION时,系统会认为此时鼠标位于标题栏上,因而当鼠标按下并移动时就会执行拖动操作。我们需要做的就是响应这个…...
wordpress 下载官网/深圳百度竞价托管公司
我有2个进程在不同的机器上运行,它们通过TCP套接字进行通信.这两个进程都具有既充当服务器又充当客户端的代码.即ProcessA打开了一个服务器套接字,它在portX上绑定,ProcessB在portY上打开了一个服务器套接字绑定.ProcessA打开客户端套接字以连接ProcessB并开始作为客户端发送消…...
用python 做网站/网络营销有哪些主要功能
https://www.jianshu.com/p/4140be00d4e3 题目描述建模方法特征工程我的几次提升方法从其他队伍那里学习到的提升方法总结和感想神经网络方法的一点思考大数据量与分布式计算的一点思考参加比赛和学习知识的对比最后的感受趣事写在前面 我是一个之前PhD做分布式计算、虚拟机调度…...