tag 标签: 深度学习

相关帖子
相关博文
  • 2025-7-30 10:56
    0 个评论
    大成建设(Taisei)图像数据隐私保护与AI开发协同案例解析
    在 数字化转型 浪潮下,隐私保护已成为全球性挑战。随着AI摄像头、无人机等 视觉采集设备 的普及, 海量图像数据 在提升生产效率的同时,也带来了 敏感信息泄露 的风险。 然而 传统模糊化处理技术 往往陷入两难境地——过度处理会 破坏数据价值 ,而处理不足又 难以满足日益严格的隐私法规要求 。如何在保护个人隐私的同时 释放数据潜力 ,成为横跨各行业的核心难题。 一、客户需求 日本建筑业巨头 Taisei Corporation(大成建设) 最初涉足 图像识别人工智能领域 时,采用了一款安装有 模糊处理应用程序接口(API) 的摄像头来保护个人数据。 然而,这种方法因API本身的限制面临诸多挑战。比如,它会导致 过度模糊 ,常常将整个人的上半身都模糊掉, 这对训练人工智能系统而言会产生负面影响 。此外,这种方法 无法捕捉到性别和年龄等关键属性 ,因为这些信息在模糊处理过程中会丢失。 因此,Taisei需要的是一种 既能有效保护个人隐私,又能保留图像中关键信息 (如性别、年龄等属性),以满足人工智能训练需求的解决方案,即需要满足三重目标: 1. 法律合规性: 符合日本《个人信息保护法》及欧盟GDPR对个人信息的严格规定 2. 数据可用性: 处理后的图像保留性别、年龄等基本属性 3. 技术扩展性: 支持后续AI分析(如安全行为识别、自动化施工监测)的数据结构化需求 二、解决方案 对于Taisei在匿名化与可用性的需求, 深度自然匿名化(DNAT)方案 显然是一个绝佳的选择。该解决方案利用先进的 深度学习技术 , 可以有效地检测镜头中的 人脸和车牌。 一旦人脸和车牌得到检测,DNAT就会 随机生成一个真实的覆盖层 替代它们。 这种方法有效地隐藏了图像中个人信息,同时保留了原始数据中的关键特征, 平衡了隐私保护和数据效用 ,完美地解决了Taisei目前所遇到的困境。 总结来说,深度自然匿名化(DNAT)是一种基于 生成式人工智能的解决方案 ,可通过生成面部和车牌的 合成覆盖层 来保护身份信息。该方案具有以下亮点: 1. 智能检测与替换 - 基于 深度学习算法 精准检测视频流中的面部及车牌信息 - 采用 生成式AI技术 替换为不可追溯的合成特征,同时保留性别、情绪等关键属性,传统摄像头API模糊无法实现 2. 隐私优先处理 - 完全符合 GDPR等合规要求 ,处理后的数据 无法被逆向还原 - 相比传统模糊技术,在保护隐私的同时 保持数据可用性 3. 高效边缘处理 - NVIDIA Orin AGX上可以实现稳定 24FPS的720p 实时匿名化处理 -自动化处理 大幅减少人工审核需求 三、应用成效 深度自然匿名化方案 的采用,使Taisei在保护个人信息的同时,成功推动了人工智能的开发。 此外,由于深度自然匿名化解决方案符合全球数据隐私基准—— 《通用数据保护条例》(GDPR) ,Taisei 正考虑 深化合作 ,借助方案技术能力进一步适配全球个人信息保护规范,从而推动其在该领域的进一步发展。
  • 热度 9
    2023-11-24 17:55
    1697 次阅读|
    0 个评论
    来源:友思特 智能感知 友思特分享 | Neuro-T:零代码自动深度学习训练平台 欢迎关注虹科,为您提供最新资讯! 工业自动化、智能化浪潮涌进,视觉技术在其中扮演了至关重要的角色。在汽车、制造业、医药、芯片、食品等行业,基于视觉技术实现的缺陷检测具有非常大的需求。对于传统检测方法,目视检查方法能够有效检测非标、具有挑战性的缺陷,传统机器视觉方法具有稳定的速度及准确性,适合重复检测任务。这两种方法具有诸如检测精度、缺陷类型、技术人员成本等局限性。在这种背景下,融合深度学习的视觉检测方案有效地结合了两者的优势,满足了传统检测方法的需求。 为什么要选择友思特 Neuro-T? 深度学习项目流程如上图所示。对于深度学习视觉检测方案: (1) 高质量的训练数据对于创建高性能的深度学习模型至关重要; (2) 创建高性能的深度学习模型需要丰富的专业知识。 完成一个深度学习视觉检测项目,需要有丰富经验的行业领域工程师和深度学习工程师。 友思特 Neuro-T为传统的深度学习视觉检测方案提供了“ 自动深度学习 ”的解决方案。Neuro-T 软件集成 自动深度学习算法,结合自动标注功能 ,一键生成高性能视觉检测模型,无需AI领域专业知识即可创建深度学习视觉检测模型。 友思特 Neuro-T 平台介绍 友思特 Neuro-T 是一个用于深度学习视觉检测项目的一体化平台,可用于 项目规划→图像预处理→图像标注→模型训练→模型评估 一系列任务。Neuro-T提供了便捷的工具和友好的图形化界面,只需四个步骤即可创建一个深度学习模型: 01 文件页面 第一步是在文件页面导入图像 该页面还提供了如图像切片、图像增强等预处理功能 02 数据页面 第二步从选择模型类型开始。 通过标注,用户可以指示模型要检测的目标 03 训练页面 第三步是验证数据集并启动训练过程 自动深度学习算法使得一键即可完成训练设置 04 结果页面 第四步是评估模型的性能 模型可以基于四个不同的值(Accuracy, Precision, Recall, F1 Score)进行评估 友思特 Neuro-T 的优势特性 自动深度学习算法 深度学习算法分为:自动深度学习算法和现有算法。自动深度学习算法使得每个人都可以轻松地创建高性能的深度学习模型。 自动标注 在大数据量深度学习任务中,标注任务需要耗费大量时间。Neuro-T通过自动标注显著缩短项目周期时间,基于用户已标注的数据来保证后续标注的一致性。 本地云环境 用户可以在安全的环境中与团队成员协作。Neuro-T 的服务端-客户端架构只允许团队成员共享工作区。 流程图和推理中心 流程图可以链接多个不同类型的模型来简化项目设计,如分类+检测模型组合。推理中心可以评估项目流程图的推理时间和准确率,从而以更少的尝试和错误创建最佳模型。 快速再训练 如果出现新的缺陷类型或设计修改,需要重新进行训练,且存在时间延迟和效果下降的问题。Neuro-T 通过自动深度学习和平衡数据,以较短的训练时间实现较高的模型精度。 友思特 Neuro-T 的功能 分类(Classification) 分类正常类型与缺陷类型 分割(Segmentation) 通过分析像素识别特点形状缺陷和位置 目标检测(Object Detection) 识别物体类别、数量和位置 异常检测(Anomaly Detection) 通过仅在正常图像上训练来识别异常图像 字符识别(OCR) 光学字符识别 旋转(Rotation) 旋转图像至正确方位 友思特 Neuro-T 应用案例 1. 汽车用钢材 检测要点: (1)汽车表面缺陷检测和装配完成检测。 (2)VIN编号识别。 (3)材料表面涂层区域的识别。 (4)无损检测、焊接/卷材/板材检测。 2. 螺栓/螺母组件检测 3. VIN编号识别 4. 其他汽车制造业应用领域
  • 热度 3
    2023-4-11 22:22
    2316 次阅读|
    1 个评论
    一、 前言 最近人工智能、深度学习又火了,我感觉还是有必要研究一下。三年前浅学了一下原理没深入研究框架,三年后感觉各种框架都成熟了,现成的教程也丰富了,所以我继续边学边写。原教程链接: https://www.bilibili.com/video/BV1CW4y1r7Q7?p=1&vd_source=e8c67158ee12f84a27ae1bb40bb2775d 所以准备出个系列的教程,给不耐烦看视频或者只是想浅了解一下的同学。我选的框架 tensorflow ,据说 GPT 也是用的这个,应该是比较大众化的了。 二、 前序准备 1. 开发环境 (1) Python3.8 (2) Anaconda3 (3) Tensorflow (4) Numpy (5) Pandas (6) Sklearn 先依次安装好上面的软件和包,其中 python3.8 和 Anaconda3 是直接下载安装,如果官方链接比较慢,可以搜下三方的源安装。其中 Anaconda3 不是必须的,用这个工具是因为确实挺香的。 剩下的 3-6 都是 pip 安装的包,注意使用 Anaconda3 的话就在 Anaconda Prompt 里使用 pip 命令,如果是其他集成环境或者原生的 python 环境,直接就在 cmd 里使用 pip 安装。 pip 安装时可能会遇到下载特别慢的情况,建议使用国内源,方法参考下面链接: https://mp.weixin.qq.com/s?__biz=MzUzOTY2OTcyMw==&mid=2247487143&idx=2&sn=b2cc99fcb09a774be78235c10d06d1c0&chksm=fac5ab13cdb222058f9b73d5c3600ad74194473ce9413cca5e069354f4e555b19f1293c39453&scene=27 实际安装过程可能会比较曲折,需要大家慢慢研究了,一般来说多搜索下都能解决问题。比如安装 Sklearn 不是 pip install sklearn (虽然也能安装上另外一个不相干的包),实际应该用: pip install scikit-learn 类似的坑多的很,一时半会也列不完,反正也是花了一个晚上才算是把开发环境给搞定。 2. 数据准备 这次我们是要做天气预测,那自然是要弄到历史的天气数据。有三个路径,一是购买打包好的大数据,看了下便宜的都要好几千。二是网上爬数据,参考下面的链接: http://lishi.tianqi.com/shanghai/201101.html 这个网站从 2011 年 1 月到最新的天气数据都有,可以自己爬下来,推荐使用“八爪鱼”,还是挺好用。 第三个路径就是做伸手党,正好我手上有上海的天气数据,在文章末尾链接提供。 我手上的这份数据分为 “训练集”和“验证集”两个文件,直观来看训练集就是用于模型训练,验证集就是使用训练好的模型来预测试试,数据的格式一样,在使用时需要裁剪一下。 各字段的意思看名字就知道了,其中 avg 指的是当日平均温度, avg_befor1 指的是昨天的平均温度, avg_befor2 前天的,依次类推,一共回溯 7 天的。这个模型也就是用前 7 天的平均气温来预测当天的平均温度。 三、 构建模型 1. 读入待训练的数据 (完整代码跟前面天气数据放一起了) 从上图,我们可以看到读入了 4429 行数据,每行有 13 列,这样的数据不能直接使用,需要裁剪一下。 2. 数据裁剪 这里我们做了 3 个操作。 1) 是将前 7 行有 null 的数据删除 2) 是将 avg 这一列单独存起来了,用于后面的模型训练。 3) 将 high 、 low 、 avg 三列从数据集中删除,因为我们是使用“历史数据”来预测当日的平均温度,这三列都属于当日数据所以要删除。 3. 数据预处理 这里做了 2 个操作。 1) 将数据集转化为 array 的形式,这样 TensorFlow 才能处理(自动去掉了 title 的内容) 2) 将数据做归一化,主要是为了方便后面的模型训练,简单来说就是将 15 、 20 、 30 这些数字转化为 -1 到 1 之间的数字,可以参考下面这个链接。 https://blog.csdn.net/qq_51392112/article/details/129091683 4. 构建模型 这里我们构建了一个 1 的神经网络模型,其中 16 、 32 、 1 指的是每一层的神经元数量,第一层与第二层的神经元数量无所谓可以随便写,第三层的 1 与预测的结果相对应,也就是我们使用前 7 天的平均温度,预测的是今天这“一个”平均温度。如果你预测的是当天最高温和最低温,就需要将第三层的 1 修改为 2 了。这里因为我们只预测 1 个结果(当天的平均温度),所以输出只需要 1 个。 其中 model.compile 是对神经网络进行配置,主要参数含义如下: 解释起来比较复杂,这里我们只管先用着,反正就是一些可以选择的参数,对模型的训练可能有很大影响,也可能没啥影响,一些资深人事主要工作就是调调这里改改哪里。 如果想改改参数看看效果,可以参考下面的链接: https://blog.csdn.net/chaojishuai123/article/details/114580892 5. 训练 model.fit 里也有好几个参数,详细如下: 1) Input_features ,输入的训练数据集 2) labels_avg ,前面我们将 avg 列单独保存了起来就是为了用在这里 3) Validation_split=0.1 ,将其中的 10% 数据用于模型验证,剩下的 90% 用于模型训练 4) Epochs ,迭代次数,也就是这些数据会被用于模型训练多少次 5) batch_size ,每一次训练使用的数据量 除了 features 、 labels ,其他三个参数大家可以随意调调看对结果的影响。 上面截图中,注意有 loss 和 val_loss 两个结果,其中 loss 是模型训练后的“损失”,你可以理解 loss 越小则模型对你输入的数据匹配度越高(越契合你的训练数据)。 Val_loss 是模型验证的“损失”,也就是前面我们设置的那 10% ,这个值越小说明你的模型验证的结果也不错。 但 Loss 也不是越小越好,太小说明模型对你输入的数据产生了过拟合,可能结果是训练数据很不错但使用起来就很差。所以我们追求的其实是 loss 和 val_loss 的综合解,即在 loss 较低的情况下, val_loss 也不太高。 6. 输入待预测的数据 这里的操作与前面训练集其实很像,都是将数据读入后进行裁剪,同时将 avg 列另外存起来。最后将裁剪后的数据进行预处理。 7. 预测 model1 就是我们构建并训练好的模型了,现在我们可以使用前面准备好的训练集了。 下面我们再看看实际温度,只能说是毫无关系,所以天气预报为什么不准呢对吧,说明根本就无法预测。不死心的同学可以试试自己修改下参数。 四、 回顾 这是一次不太成功的示范,实际上我花了不少时间试图从最高温、最低温、平均温度、历史温度等找到温度变化的规律,但真的是没弄成。说明在深度学习中找对目标和数据集很重要啊。数据集和完整代码见下面的链接: https://share.weiyun.com/mrL02s7J
  • 热度 3
    2023-3-29 12:41
    3778 次阅读|
    1 个评论
    一、 前言 GPT 的发布让 AI 再次热了起来,与上次阿尔法狗不同的是,现在人人都可以跟聊上几句,给它出出难题,还能调戏下。同期英伟达发布了针对 AI 领域的全新 GPU H100 ,有的童鞋会疑惑,这个英伟达不是做显卡打游戏的吗,怎么就跟 AI 扯上关系了。其实英伟达的显卡不是简单的与 AI 有关系,而是大有关系。 二、 图形处理与 GPU GPU 的起源确实是基于图形处理的需求。早期还没有专门 GPU 时,我们打游戏所有的逻辑处理都放在 CPU 执行, CPU 的处理能力越来越强,但经不住游戏画面增长的更快,这就对图形处理提出了更高的要求。 而图形处理的本质其实就是光影的计算,以下图为例,在屏幕上画一个圆非常简单。 但如过要让这个圆 “立体”起来,其实就是要给它加上光影,像下图这样。 游戏画面也是这样的逻辑,一个画面优质的游戏一定是有丰富的光影效果,而光影效果的本质其实就是在虚拟的 3维空间里,模拟光的照射。屏幕中的画面其实就是特定角度下,由计算机计算出的,你应该看到的光影效果。 需要特别注意的是,游戏中你会不停的移动,也就是所有光影的效果都需要实时的计算出来。假设屏幕分辨率为 1920*1080,即2073600(207.36万)个像素,游戏中每个像素都需要根据光影参数来计算显示的颜色和明暗。假设一个常见的Inter I5 CPU主频为3.2GHz,即最多每秒可做32亿次运算。但这里的一次运算只是做了一次简单的二进制加减法或数据读取,一个像素的光影计算我们可以假设需要100次运算,即CPU一秒约处理3200万次像素运算,大概15张图片,用专业点的说法,这个游戏流畅度大概是每秒15帧的样子。 那我们能不能继续提升 CPU的主频呢,可以但是能提升的空间非常有限。所谓主频本质上其实就是一个节拍器,CPU执行命令时其实是要按照一个特定的节拍来同步其各模块的操作。可以想象CPU其实就是个工厂流水线,1+1=2的本质其实至少包含了3个步骤: 1、 将第一个 1和第二个1从内存提取到CPU 2、 两个 1在CPU中相加得到2 3、 将 2从CPU存放到内存 本质上来说,所有的指令操作、图形计算,最终到达 CPU时都会被拆分成类似于1+1=2这样的加法运算。而每一个节拍又只能执行其中的一步,如果我们可以将节拍打的更快一些,上述3个步骤执行的也就越快,那我们就说CPU的频率越高。但再往下看,我们打节拍又受到了晶体管开关速度的限制。简单来说,节拍打的越快,晶体管的开关速度也就更高,这就直接导致了CPU的发热问题。所以目前高性能CPU的频率始终被限制在5GHz,可见从CPU频率上已没有太多空间可以提升。工程师们就想到“其实任何一个像素的计算与其他像素的计算结果关系不大”,那为啥不多整几个计算核心“并行”计算呢,于是GPU就出现了。 一个典型的显卡 GTX1060,主频是1.5GHz大概是Inter I5一半左右,但是它具备1280个计算核心。每个计算核心每秒可做15亿次运算,1280个核心每秒就是19200亿次运算,那一秒可以处理192亿次像素计算,大概925张图片,是CPU计算能力的61倍!但GPU的特性只能应用于图形计算这种可以并行的任务,若是做普通的串行任务其速度远远不如CPU。 那我们能不能把 CPU和GPU结合起来,让他频率高,核心数量还多呢?还是不得行,上千个核心提升一点点的主频就会带来一些列问题,比如撒热、抖动、稳定性等等。所以内核数与频率就是不可能三角,CPU与GPU都只能侧重于其中一面,在不同的领域发挥作用。 AI的本质其实与游戏差不多,也是大量的计算,只是计算的数据量会更庞大。 三、 AI训练与矩阵计算 所谓训练 AI,其实就是向神经网络中投喂大量的数据。比如 我想要生成美女图片,以前的做法是建设一个有足够素材的库,让美女的各个元素(手、脚、嘴巴、眼睛、身材等等)随机组合在一起,结果可能差强人意。现在则只需要向神经网络里导入大量的美女图片,当你导入的图片数量足够多时,神经网络也就 “学会”了什么是美女,这样它就能自动产出美女。相对应的,如果你一直输入的是猛男,那它也只能生产猛男了。 我们知道其实图片就是像素构成的,比如下面这张图的像素是 8x8 (简化示意),也就是 64 个像素点,我们可以用 1x64 这样的数组来表示它。 以下图这样的 3层神经网络为例(原本是7个输入,我们修改为64个输入),所谓的数据“投喂”其实就是将图片以64个数字表示,然后输入到网络中。 具体怎么输入呢,其实就是以 A0(图片原始数据)为基础,来计算A1,接着以A1为基础计算A2、A3及最终结果A4。计算过程遵循以下公式: A1 = W1*A0 + b1 A2 = W2*A1 + b2 A3 = W3*A2 + b3 A4 = W3*A3 + b4 其中 W1\W2\W3\W4、A1\A2\A3\A4的数据量大小由每一层神经元的个数决定,比如我们每一层设置为64个神经元,则W1是一个64x64的数字矩阵,A1则是1x64的数字矩阵(与输入一样)。下图是一个矩阵相乘的示意。 所以对神经网络的投喂问题就变成了 A0与W1两个数据矩阵的乘法问题,那么每一层神经网络的计算就需要至少4096次乘法计算,3层网络就需要至少12288次乘法计算。这还只是64x64像素的图片,如果是1280x1280的像素,就需要数百万次计算。 我们很容易就能想到也可以用 GPU(显卡)来执行这些计算,因为每一张图片的输入都可以独立运行,那么我们给显卡的每一个核都输入一张图片,那同时就可以有上千张图片一起在计算,这样的计算效率自然是杠杠的。 五、 AI与算力 综上所述, AI的发展离不开大量的算力资源,以GPT4来说,每1000字的算力大约需要0.06美元(约0.4元)。在小规模使用时可能还看不出成本的高低,当AI成为基础设施,比如搜索引擎,每天上亿次的搜索频率,成本可能也会去到上亿的数量级,这还只是其中一个应用。所以未来AI的发展离不开算力,英伟达则是在显卡的基础上,专门针对AI开发了特殊的GPU以满足算力需求,但可见的未来还是远远不够的。 参考前几年的数字挖矿,显卡的价格将迎来一波上涨。除计算性能外,另外还有更大的成本就是电力。所以可以预见的是,国内会出现一批专门做 AI芯片设计的公司(参考比特大陆),还会有一批将数据中心建设到大西北以获取更廉价电力的小团队(普通人的机会),这些还都是国家大力支持的。所以发财的路子已经有了,朱军加油。
  • 热度 17
    2023-1-5 14:04
    1041 次阅读|
    0 个评论
    数学模型 | 分子结构 | QSAR 机器学习 | CoMFA| Hansch 如今是算力、高性能为先的社会,随着机器学习、深度学习的快速发展,用于生命科学医药研发的QSAR(定量结构-活性关系)也在快速发展。伴随着数据分析、数据挖掘数目的不断增大, 传统的风冷散热方式已经不足以满足散热需要,这就需要新兴的液冷散热技术以此满足节能减排、静音高效的需求。 作为国内品牌服务器厂商,蓝海大脑液冷GPU服务器拥有大规模并行处理能力和无与伦比的灵活性。它主要用于为计算密集型应用程序提供足够的处理能力。GPU的优势在于可以由CPU运行应用程序代码,同时图形处理单元(GPU)可以处理大规模并行架构的计算密集型任务。GPU服务器是医疗成像、医药研发、QSAR研究的理想选择。 本文将为大家全面介绍QSAR(定量结构-活性关系)及其研究方法。 什么是QSAR? 定量结构-活性关系(Quantitative Structure-Activity Relationship,QSAR)是目前国内外一个活跃的研究领域。主要基于各种分子描述符和模型算法,建立化合物的结构与其理化性质、生物学活性、毒理学效应、环境行为和归趋等的定性/定量关系。 随着计算机技术迅猛发展,QSAR的学术研究已步入到一个新水平,涉及化学、药物、环境和健康等诸多领域。同时,随着监管机构对其认可度的提高,QASR在工业化学品、农药、 消毒剂、化妆品、食品接触材料和添加剂、医药等的研发、风险评估、注册和管理方面发挥着越来越重要的作用。 但QSAR并不是一个只要输入物质结构,甚至CAS号码,就能输出一份报告的简单工具。事实上,QSAR 的应用需要大量的理论和实践基础。只有对模型算法选择、化学信息学、实验方法、毒性/生物活性的作用机制、 可靠性验证、法规知识等具备相当深入的研究,才能准确地将之运用相关领域。因此QSAR模型的构建和使用对专业知识要求比较高,这对新接触QSAR的人来说往往会存在一定难度。 QSAR建模过程 QSAR建模过程一般包含数据收集、计算与筛选分子描述符、模型建立、验证与评价四个步骤。 一、数据收集 广义上,在药物设计中,用以建模的化合物数据主要包括以下几类: 1、针对靶标的活性,如酶活性的半数抑制浓度和细胞活性的半数抑制浓度等 2、生物毒性,如口服急性毒性LD50、最小作用剂量MED、突变性和致癌性等 3、理化性质,如溶解性和血脑穿透能力等 4、环境中转化的表征参数,如水生毒性和降解速率等。数据的可靠性是模型有效的前提,只有通过可靠实验数据建立的模型才具有实际应用价值。 二、计算与筛选分子描述符 在QSAR研究领域,人们可根据化合物结构推导出来某种与之对应的数值指标,这些指标就是化合物物理化学性质微观上的描述,将此称作其生物学性质上某一“指纹”的“微观显示”,即分子描述符。 三、模型建立 QSAR模型可分为线性与非线性两类建模方法。其中线性模型中主要应用多元线性回归(MLR)、主成分分析(PCA)和偏最小二乘法(PLS)等方法;遗传算法(GA)、支持向量机(SVM)和人工神经网络(ANN)则能较好地处理非线性关系。 1、遗传算法 GA是根据大自然生物进化规律,模拟生物基因发生改变的现象。探索复杂模型的组合优化问题,通过选择、交叉和变异等过程的模拟组合,得到备选的多组自变量与因变量,通过适应度是否达到阈值或最优个体适应度上升趋势来判断其优劣,直至满足要求,得到最优QSAR模型。 2、主成分分析 在含有多变量的分析中,PCA常被作为简化数据的方法。该方法可以通过正交变换,完成变量线性到非线性的转化,从而简化QSAR建模进程。Bernardo等,通过该方法构建QSAR模型,对多环芳烃致癌毒性的预测得到了较好结果。 3、偏最小二乘法 PLS可以看作是MLR和PCA两种方法的结合,通过最小化误差的平方和筛选最优数据,排除原有信息中线性重迭的分子描述符,并且适合样本容量不足时构建QSAR模型。 4、人工神经网络 ANN是对人脑处理数据时神经元的模拟,将大量节点之间构成联系,建立模型,常用于构建非线性QSAR模型,但存在一定的不稳定性,需要提前筛选描述符才能构建有效模型。 5、支持向量机 SVM是一类监督学习方式,它建立在结构风险最小化原理基础之上,通过寻找最优超平面进行非线性分类,从而将非线性特征问题的分析向线性分析转变,被广泛用于分类问题和回归问题的解决中。 二维QSAR概念模式与研究方法 二维定量构效关系方法是将分子整体的结构性质作为参数,对分子生理活性进行回归分析,建立化学结构与生理活性相关性模型的一种药物设计方法,常见的二维定量构效关系方法有hansch方法、free-wilson方法、分子连接性方法等,最为著名和应用最广泛的是hansch方法。 一、活性参数 活性参数是构成二维定量构效关系的要素之一,人们根据研究的体系选择不同的活性参数,常见的活性参数有:半数有效量、半数有效浓度、半数抑菌浓度、半数致死量、最小抑菌浓度等,所有活性参数均必须采用物质的量作为计量单位,以便消除分子量的影响,从而真实地反映分子水平的生理活性。为了获得较好的数学模型,活性参数在二维定量构效关系中一般取负对数后进行统计分析。 二、结构参数 结构参数是构成定量构效关系的另一大要素,常见的结构参数有:疏水参数、电性参数、立体参数、几何参数、拓扑参数、理化性质参数以及纯粹的结构参数等。 1、疏水参数 药物在体内吸收和分布的过程与其疏水性密切相关,因而疏水性是影响药物生理活性的一个重要性质,在二维定量构效关系中采用的疏水参数最常见的是脂水分配系数,其定义为分子在正辛醇与水中分配的比例,对于分子母环上的取代基,脂水分配系数的对数值具有加和性,可以通过简单的代数计算获得某一取代结构的疏水参数。 2、电性参数 二维定量构效关系中的电性参数直接继承了哈密顿公式和塔夫托公式中的电性参数的定义,用以表征取代基团对分子整体电子分配的影响,其数值对于取代基也具有加和性。 3、立体参数 立体参数可以表征分子内部由于各个基团相互作用对药效构象产生的影响以及对药物和生物大分子结合模式产生的影响,常用的立体参数有塔夫托立体参数、摩尔折射率、范德华半径等。 4、几何参数 几何参数是与分子构象相关的立体参数,因为这类参数常常在定量构效关系中占据一定地位,故而将其与立体参数分割考虑,常见的几何参数有分子表面积、溶剂可及化表面积、分子体积、多维立体参数等。 5、拓扑参数 在分子连接性方法中使用的结构参数,拓扑参数根据分子的拓扑结构将各个原子编码,用形成的代码来表征分子结构。 6、理化性质参数 偶极矩、分子光谱数据、前线轨道能级、酸碱解离常数等理化性质参数有时也用做结构参数参予定量构效关系研究。 7、纯粹的结构参数 在free-wilson方法中,使用纯粹的结构参数,这种参数以某一特定结构的分子为参考标准,依照结构母环上功能基团的有无对分子结构进行编码,进行回归分析,为每一个功能基团计算出回归系数,从而获得定量构效关系模型。 三、数学模型 二维定量构效关系中最常见的数学模型是线性回归分析,Hansch方程和Free-Wilson方法均采用回归分析。 经典的Hansch方程形式为: 其中π为分子的疏水参数,其与分子脂水分配系数Px的关系为: ,σ为哈密顿电性参数,Es为塔夫托立体参数,其中a,b,c,k均为回归系数。 日本学者藤田稔夫对经典的Hansch方程作出一定改进,用抛物线模型描述疏水性与活性的关系: 这一模型拟合效果更好。Hansch方程进一步,以双直线模型描述疏水性与活性的关系: 其中的P为分子的脂水分配系数,a,b,β为回归系数,D代表方程的其他部分。双直线模型的预测能力比抛物线模型进一步加强。 Free-Wilson方法的方程形式为: 其中 为结构参数,若结构母环中第i个位置有第j类取代基则结构参数取值为1否则为0,μ为参照分子的活性参数, 为回归系数。 除了回归分析,遗传算法、人工神经网络、偏最小二乘分析、模式识别、单纯形方法等统计分析方法也会应用于二维定量构效关系数学模型的建立。 四、发展 二维定量构效关系的研究集中在两个方向:结构数据的改良和统计方法的优化。 传统的二维定量构效关系使用的结构数据常仅能反应分子整体的性质,通过改良结构参数,使得二维结构参数能够在一定程度上反应分子在三维空间内的伸展状况,成为二维定量构效关系的一个发展方向。 引入新的统计方法,如遗传算法、人工神经网络、偏最小二乘回归等,扩展二维定量构效关系能够模拟的数据结构的范围,提高QSAR模型的预测能力是2D-QSAR的主要发展方向。 三维QSAR概念模式与研究方法 由于二维定量构效关系不能精确描述分子三维结构与生理活性之间的关系,随着构效关系理论和统计方法的进一步发展,引入了三维定量构效关系。这种方法间接地反映了药物分子与大分子相互作用过程中的非键相互作用特征,相对于二维定量构效关系有更加明确的物理意义和更丰富的信息量,因此三维定量构效关系逐渐取代了二维定量构效关系的地位, 成为基于机理的合理药物设计的主要方法之一。 这是 3D-QSAR 的发展历程,我们可以看出自从 80 年代提出以来,它的发展还是很快的,目前应用最广泛的三维定量构效关系方法是比较分子场方法和比较分子相似性方法。 一、比较分子场分析方法 这种方法通过分析分子在三维空间内的疏水场,静电场和立体场分布,以这些参数为变量对药物活性做回归分析。它的基本原理是:如果一组相似化合物以同样的方式作用于同一一靶点,那么它们的生物活性就取决于每个化合物周围分子场的差别,这种分子场可以反映 药物分子和靶点之间的非键相互作用特性。 优势: 通过比较同系列分子附近空间各点的疏水性、静电势等理化参数,将这些参数与小分子生理活性建立联系,从而指导新化合物的设计 不足: 分子的排列是该模型最关键、最困难的问题,也就是说化合物与受体作用位点结合的方向,任何小误差出现在过程中都将导致计算结果的不精确。 二、比较分子相似因子分析法 与比较分子场分析方法最大的不同就是分子场的能量函数采用了与距离相关的高斯函数的形式,这种方法中共定义五种分子场的特征,包括立体场、静电场、疏水场以及氢键给体场和氢键受体场。 这个方法是人们对比较分子场分析方法做了大量修正和改进得到的更具优势的模型。 优势: 采用了与距离相关的高斯函数形式,可以有效地避免在传统比较分子场分析方法中由静电场和立体场的函数形式所引起的 不足: 由于分子场能量在格点上的迅速衰退,不需要定义能量的截断值 三、距离几何法 这种方法假定配体分子的活性基团与受体分子间的结合位点之间是相互 作用的,它将药物分子划分为若干功能区块定义药物分子活性位点,计算构象时各个活性位点之间的距离,形成距离矩阵;同时定义受体分子的结合位点,获得结合位点的距离矩阵,通过活性位点和结合位点的匹配为每个分子生成结构参数,对生理活性数据进行统计分析。 四、分子形状分析法 研究步骤一般可分为: 分析药物分子的构象,得到分子构象库 确定分子的活性构象 根据分子的活性构象选定参考构象 将其他分子构象与参考构象进行重叠 根据重叠构象确定公共重叠体积和其他的分子特征 最后根据重叠体积和分子特征,建立 QSAR 模型 QSAR的应用 一、微观方面的应用 1、药物设计 近年来,分子生物学和计算机科学的迅速发展,使得计算机辅助药物设计(CADD)在新药物开发中起 着非常重要的作用。按照是否已知受体的三维结构,可把这些方法分为两大类,一类是直接药物设计,用于 受体靶点三维结构已知的情况下,研究药物与受体的相互作用,根据受体受点的形状和性质设计新的药 物,如:对 DHFR 抑制剂、人体免疫缺陷病毒(HIV-1)蛋白酶抑制剂、5-羟色胺(5-HT)受体拮抗剂 等的研究;另一类是间接药物设计,当受体的三维结构未知时,采用对一组具有类似活性的化合物建立定 量结构-活性关系模型,根据 QSAR 计算结果的指导药物化学家可以更有目的性地对生理活性物质进行结 构改造。 CoMFA 和 CoMISA是应用最广泛的合理药物设计方法之一,这种方法认为,药物分子与受体间的相 互作用取决于化合物周围分子场的差别,以定量化的分子场参数作为变量,对药物活性进行回归分析便可 以反应药物与生物大分子之间的相互作用模式进而有选择地设计新药。 2、模拟污染物对酶、生物作用的动力学过程 3D-QSAR 发展至今,已称为计算机辅助农药设计的基本手段与分析方法。同时,在生物化学、生物 医学和生物毒理学方面,3D-QSAR 可用于研究酶的活性、生物体抗病毒能力的强弱、化合物的致癌致畸 性等。 具体来说,3D-QSAR 已用来研究多种酶(如水解酶、氧化还原酶、连接酶)的作用物和抑制剂,受 体(如 5-HT受体、GHRH 受体等)和运输载体。此外,3D-QSAR 在肿瘤学、抗菌剂、新陈代谢方面也 有一些应用。 二、宏观方面的应用 利用 3D-QSAR 解决环境化学问题才刚刚起步。 目前,对于一些除草剂,如光系统Ⅱ(PSⅡ)抑制 剂、氰基内稀酸酯类化学物、光合作用抑制剂嘧啶硫苯甲酸类化合物等,已研究了其三维定量构效关系。 如何将 3D-QSAR 研究深入,在环境化学中发挥更大作用,是迫切需要解决的问题。 3D-QSAR与传 统 OSAR 相结合,研究污染物水解、光解、生物降解以及土壤吸附等环境行为,将有助于更加深入的yanjiu研究 这些环境行为的作用机理。同时,对于广泛使用污染严重的化合物(如除草剂、杀虫剂、洗涤剂等), 在已有的 2D-QSAR 研究基础上,进行 3D-QSAR 分析,进而了解化合物产生毒性的部位和发挥用途的机 制,挑选出高效低毒的化合物,可达到减少污染的目的。使用 3D-QSAR 的方法,还可以了解污染物在与 蛋白质和核酸等生物大分子结合、作用(从而导致癌变等病理情况)的过程中其三维结构所扮演的角色, 更加深入的研究污染物在生物体内的作用途径,这对揭示人类的衰老、疾病机制,维护人类健康将发挥重 要作用。 QSAR模型内部与外部验证方法综述 最近几十年,国内外大量文献报道定量结构-活性/属性相关(QSAR/OSPR)模型,王连生教授作为我国有机污染物定量构效关系研究领域的开创者,为我国的 QSAR 研究做出了突出的贡献。 经济合作与发展组织(OECD)提出 QSAR 模型需遵循5个法则: 1、确定的终点 2、明确的运 算方法 3、定义应用范围 4、适当验证模型拟合优度、稳健性和预测能力 5、如果可能,进行机理解释。建立QSAR 模型的目的通常是为了: 预测未测定或新化合物的生物活性 确定哪些分子结构属性决定化合物的生物活性,例如,在药物学研究中,通过 QSAR 研究可以修改药物分子结构进而提高药效或更进一步理解生物学机理 为此,下面将详细综述 QSAR 模型的内部验证和外部验证方法,为 QSAR 建模者提供指导与帮助。这些内部验证和外部验证可作为 QSAR 的验证方法,以保证回归模型的可靠性和有效性。 一、QSAR模型内部验证方法 严格的 QSAR 模型验证程序应包括内部验证和外部验证.内部验证方法包括留一法(LOO)交叉验证、留多法(leave-manv-out.LMO)或留N法(leave-N-out.LNO)交叉验证、随机化验证和自举法等。 1、LOO 交叉验证 LOO 交叉验证是模型内部验证最简单的方法之一。假设对于含n个样本的数据集,LOO 交叉验证步骤如下: 1)抽出第1个样本作为外部检验样本,余下的n-1 个样本作为训练集建立回归模型,并用这个模型去预测抽出的作为外部检验样本的因变量值。 2)将第1个样本放回原样本数据集,依次抽出第2个样本作为外部检验样本,同样以余下的n-1 个样本作为训练集建立回归模型,并预测第2个样本的因变量值。 3)将第2个样本放回原样本数据集。依次按照“抽出1个样本→余下样本建模一预测抽出样本一放回抽出样本”的顺序对原样本集进行操作,直到所有样本均被抽出一次并进行预测为止。 4)完成 LOO 交叉验证后。计算n次抽出样本的因变量 LOO 预测值(γ)与原抽出样本的因变量实验 值(r)之间的相关系数( O₂)及 LOO 交叉验证均方根误差(RMSECV),以评价模型内部预测能力。 2、LMO/LNO 交叉验证 LMO 或 LNO 交叉验证也是检验模型稳健性的另一种方法。LMO 与 LOO 的区别是 LMO 的计算过程每次从数据集中抽出多个样本,用剩余的样本建模并预测被抽出的多个样本,该过程重复多次。 在LOO交叉验证中,对于样本数为n的训练集,需要n次交叉验证,在LMO交叉中,训练集中n个 样本的顺序对 LMO 的结果将产生一定的影响。假设取 M =2,即 L20 交叉验证,对于给定顺序的n个样本训练集,需要进行 n/2 次交叉验证并获得 n/2 个模型。然而,该验证仅是所有可能2个样本组合中(n/(n-2))的一种组合。因此,Kiralj 和 Ferreira 建议将数据集中样本随机排序后再进行 LMO 交叉验证。在一些 LMO 交叉验证中,数据集进行多次随机化(如 10 次),取多个Q…值的平均值和标准偏差作为评价模型的稳健性。在 LMO 交叉验证中,M 的取值目前仍然没有固定的说法。对于大数据集,M可以取较大的数值,只要剩余的样本数足够用于建立一个有意义的模型,对于中度或较小的数据集(n<50),M的取值不应过大,最好的 LMO 交叉验证是 LMO 30%(M=nx30%,n为数据集样本数)。 3、γ随机化验证 随机化验证是确保模型稳健性常用的方法,其目的是检验因变量和自变量之间的偶然相关。在该验证中,因变量Y被随机排序并使用原始自变量矩阵X建立新的模型,该过程重复多次,例如随机化 10-25 次。可以期望,产生的 QSAR 模型通常应具有低的 R(v随机化相关系数)和低的 LOO 交 叉验证O值(v随机化O)如果v随机化得到的所有模型都具有高的R,和O 值那么意味着对于给定的数据集,用当前的建模方法不可能得到一个可接受的 QSAR 模型。 4、自举法 自举法的基本假设是抽出总体样本的代表性数据集,在一个典型的自举法验证中从原始数据集中随机选择K组且每组的样本数都为 m。某些样本可能被多次选取,而其它的一些样本不会被选择。对于m个随机选择样本建立的模型用来预测那些被排除在外样本的活性。在一个典型的模型验证中,重复抽取 10-25 次已足够。自举法验证中获得高的平均相关系数(R₂和Q),则表明模型具有高的稳健性。 二、QSAR模型外部验证方法 模型外部验证的最好办法是利用具体代表性和足够大的检验集(也称为预测集)来验证,并且该检验集的预测值可以与观测值(实验值)相比较。外部验证通常把整体数据集拆分为训练集(training set)和检验集(test set)用检验集验证训练集模型。Tropsha将整体数据集拆分为训练集、检验集和外部验证集(external validation sets)进而验证模型的预测能力,模型外部预测能力通过不同统计量或方法进行评价,这些统计量包括 Q₂(或R)、Golbraikh和 Tropsha 方法等,不同统计量的数学表达式详细列于下表。 此外,Golbraikh 和Tropshal提出4个条件(简称 Golbraikh和Tropsha方法)评价检验集预测值与观测值之差,对于检验集,他们推荐使用下列统计特征,预测与观测活性之间的相关系数R应接近于1相关系数R和R(预测对观测活性的R和观测对预测的 R₂)至少一个(最好两个)接近于R;通过 原点的回归线斜率k和k'应该接近于1。该方法的相关统计量表达式详见表。 三、统计量参考数值 利用上表中的统计量评价 QSAR 模型的内部预测能力和外部预测能力,当统计量的数值满足一定条件时,则认为模型可接受。根据文献中的经验值,统计量的参考数值列于如下: 1、模型样本数和变量数的比值建议大于等于 5 ∶ 1 0. 6,Q₂大于 0. 5 认为模型好,大于 0. 9 则模型优秀 Q₂,校正均方根误差(RMSEC) < 交叉验证均方根误差(RMSECV);R₂、Q₂< 0. 3,如果差值大于 0. 3,则模型过拟合和有不相关的自变量或数据有离群值 Q₂ yrand;原始 Y 与随机化后 Y 的 Pearson 相关系数的绝对值|r|与 R₂yrand 的回归线的截距(aR)小于 0. 3,|r|与 Q₂ yrand 的回归线的截距(aQ)小于 0. 05 5、Roy 的 r₂m 统计参数:Δr₂m 0. 5 四、评价 QSAR模型验证方法 一个可接受的 QSAR/ QSPR 模型,其必备条件之一是具有高的估计相关系数(R₂)和低的标准偏差。然而高的 R₂和低的标准偏差对模型的验证是不够的,因为回归模型可能包含很多参数。相关系数可能并不能反映变量间的真实关系,相关系数与样本数和自变量数有关。大量样本,其相关系数较小,但可能很显著。小量样本(例如小于 10),其相关系数较高,但可能不显著。相同的样本数,自变量数增加,模型 R₂值增加(最大等于 1)。因此,必须验证 QSAR 模型的稳定性和预测能力。 对于一个 QSAR 模型,数据集(包括样本数、自变量和因变量等)应该满足一定条件,才能保证模型具有显著的统计意义和可预测能力。 1、所有化合物的活性值(因变量)分布不能集中一点或两点,活性值应该均匀分布且具有变化较大的特点 2、应该避免使用少量样本建模,少量样本不能满足数据变化较大的特征,可能导致模型存在偶然相关和较低数值的统计量 3、线性回归模型不应包含太多的描述符(自变量),从而使得模型解释更加复杂。对于多元线性回归模型,一般认为样本数和描述符数的比值至少大于 5 倍(Topliss 比例) 4、对于线性回归模型,描述符之间应没有明显的相关性 LOO 交叉验证是模型内部验证最常用的方法,LMO 和自举法技术也被用于 QSAR 模型内部验证。为了验证模型的稳定性,除了 LOO 或 LMO(LNO)交叉验证与自举法验证,建议使用 y 随机化方法检验 模型稳定性,通过统计量是否满足参考数值( |r| 与 R₂ yrand的回归线的截距小于 0. 3,| r | 与 Q₂ yrand的回归线的截距小于 0. 05)判定模型是否存在偶然相关。 研究表明相关系数 R₂与留一法(LOO)交叉验证相关系数(Q₂ LOO )并没有相关性。同样内部预测能力和外部预测能力之间也没有相关性。Q₂ LOO 不能用于评价模型的外部预测能力。QSAR 模型具有高的内部预测能力,但外部预测能力可能很低,反之亦然。因此,QSAR 模型必 须通过有效的外部验证, 才能保证模型对外部样本的预测能力。 总结 QSAR研究是人类最早的合理药物设计方法之一,具有计算量小,预测能力好等优点。在受体结构未知的情况下,定量构效关系方法是最准确和有效地进行药物设计的方法,根据QSAR计算结果的指导药物化学家可以更有目的性地对生理活性物质进行结构改造。在1980年代计算机技术爆炸式发展之前,QSAR是应用最广泛也几乎是唯一的合理药物设计手段。 但是QSAR方法不能明确给出回归方程的物理意义以及药物-受体间的作用模式,物理意义模糊是对QSAR方法最主要的 质 疑之一。 另外在定量构效关系研究中大量使用了实验数据和统计分析方法,因而QSAR方法的预测能力很大程度上受到试验数据精度的限制,同时时常要面对“统计方法欺诈”的质 疑。
相关资源
  • 所需E币: 0
    时间: 2025-12-28 22:56
    大小: 4.58MB
    上传者: 寰宇极客99999
    基于深度学习的汽车底盘三维重建方法研究
  • 所需E币: 5
    时间: 2025-5-23 10:22
    大小: 3.88MB
    上传者: htwdb
    (1)构造了数据集GFCPD,该数据集不仅覆盖了Livermore、NPB等常见的并行程序基准测试集,同时包含了常用的数学程序库以及图的相关算法、树的相关算法等复杂算法的不同实现。是一个基于程序上下文流图(XFG)的通用数据集,是一个可以用于串行程序并行性识别任务的深度学习数据集。(2)建立了基于深度图卷积神经网络模型(DGCNN)的串行程序并行性识别模型,并将该模型的识别结果同传统的静态分析方法、结合动态特征的机器学习方法以及在算法分类问题上表现良好的深度学习模型进行对比,从而验证了DGCNN在串行程序的并行性识别任务中的可行性与有效性。(3)基于XML技术实现了并行编程标记语言PML,对MPI、OpenMP等现有编程模型进行设计与封装,提供统一的标准化编程接口,简化了并行编程方式,降低了并行编程门槛。(4)实现了并行编程辅助平台,集成了串行程序的并行性识别、PML语言的程序开发、并行程序的远程调试等功能,提供友好的用户交互环境与完整的并行程序开发流程。
  • 所需E币: 2
    时间: 2024-8-19 16:05
    大小: 90.62MB
    上传者: milktea88
    很好的图解入门书籍第1章活跃中的深度学习第2章用图说明深度学习的机制第3章说明深度学习之前的准备第4章了解什麽是神经网路第5章了解卷积神经网路的机制第6章了解递回神经网路的机制第7章了解误差反向传播法的机制
  • 所需E币: 0
    时间: 2024-3-19 14:56
    大小: 2.48KB
    一、Pytorch功能PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。PyTorch提供了两个高级功能:具有强大的GPU加速的张量计算(如Numpy)包含自动求导系统的深度神经网络除了Facebook之外,Twitter、GMU和Salesforce等机构都采用了PyTorch。Torch是一个有大量机器学习算法支持的科学计算框架,是一个与Numpy类似的张量(Tensor)操作库,其特点是特别灵活,但因其采用了小众的编程语言是Lua,所以流行度不高,这也就有了PyTorch的出现。所以其实Torch是PyTorch的前身,它们的底层语言相同,只是使用了不同的上层包装语言。PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。PyTorch提供了两个高级功能:*具有强大的GPU加速的张量计算(如Numpy)*包含自动求导系统的深度神经网络二、Pytorch使用场景1.图像和语音识别PyTorch在图像和语音识别领域得到了广泛应用,包括对图像进行分类、目标检测、语音情感识别等。2.自然语言处理PyTorch在自然语言处理领域也有很多应用,包括对文本进行分类、情感分析、机器翻译等。3.机器学习PyTorch也可以用于传统机器学习问题,例如分类、回归等问题。4.深度学习教学和研究PyTorch使用简单,易于理解,适合用来进行深度学习教学和研究。三、训练流程准备好数据和网络之后,就可以开始训练模型了,训练的过程分为train和test,其中train做训练,test做验证。训练的过程包括3个超参数Epochs-迭代数据集的次数,也就是说对数据集进行了多少次迭代BatchSize-一次训练的样本数LearningRate-学习率。较小的值会导致学习速度变慢,而较大的值可能会导致训练过程中出现不可预测的行为。learning_rate=1e-3batch_size=64epochs=5deftrain_loop(dataloader,model,loss_fn,optimizer):  size=len(dataloader.dataset)  forbatch,(X,y)inenumerate(dataloader):    #Computepredictionandloss    pred=model(X)    loss=loss_fn(pred,y)    #Backpropagation    optimizer.zero_grad()    loss.backward()    optimizer.step()    ifbatch%100==0:      loss,current=loss.item(),batch*len(X)      print(f"loss:{loss:>7f} [{current:>5d}/{size:>5d}]")deftest_loop(dataloader,model,loss_fn):  size=len(dataloader.dataset)  num_batches=len(dataloader)  test_loss,correct=0,0  withtorch.no_grad():    forX,yindataloader:      pred=model(X)      test_loss+=loss_fn(pred,y).item()      correct+=(pred.argmax(1)==y).type(torch.float).sum().item()  test_loss/=num_batches  correct/=size  print(f"TestError:\nAccuracy:{(100*correct):>0.1f}%,Avgloss:{test_loss:>8f}\n")loss_fn=nn.CrossEntropyLoss()optimizer=torch.optim.SGD(model.parameters(),lr=learning_rate)epochs=10fortinrange(epochs):  print(f"Epoch{t+1}\n-------------------------------")  train_loop(train_dataloader,model,loss_fn,optimizer)  test_loop(test_dataloader,model,loss_fn)print("Done!")模型保存和加载通过pytorch可以保存和加载训练好的模型。在PyTorch中,torch.nn.Module模型的可学习参数(即权重和偏差)包含在模型的参数中(通过model.parameters()访问)。state_dict是一个Python字典对象,它保存了模型每一层的参数。#Printmodel'sstate_dictprint("Model'sstate_dict:")forparam_tensorinmodel.state_dict():  print(param_tensor,"\t",model.state_dict()[param_tensor].size())打印结果如下Model'sstate_dict:conv1.weight   torch.Size([6,3,5,5])conv1.bias  torch.Size([6])conv2.weight   torch.Size([16,6,5,5])conv2.bias  torch.Size([16])fc1.weight  torch.Size([120,400])fc1.bias   torch.Size([120])fc2.weight  torch.Size([84,120])fc2.bias   torch.Size([84])fc3.weight  torch.Size([10,84])fc3.bias   torch.Size([10])四、总结至此,pytorch的基本使用就介绍完成了,可以看出结合深度学习网络pytorch提供了非常好用的接口,帮助我们创建网络、加载数据、训练和部署等,极大的提高了深度学习的效率,后面我们将结合具体的例子对pytorch的使用做一个介绍。
  • 所需E币: 0
    时间: 2024-3-19 14:25
    大小: 3.18KB
    上传者: 开心就很好了
    一、什么是pytorchPyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。PyTorch既可以看作加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。除了Facebook外,它已经被Twitter、CMU和Salesforce等机构采用。二、为什么使用PyTorch?机器学习研究人员喜欢使用PyTorch。截至2022年2月,PyTorch是PapersWithCode上最常用的深度学习框架,该网站用于跟踪机器学习研究论文及其附带的代码存储库。PyTorch还有GPU加速,使代码运行得更快,你可以专注于操作数据和编写算法。三、PyTorch库的优势通过将模型应用到例证,深度学习允许我们执行很多复杂任务,如机器翻译、玩战略游戏以及在杂乱无章的场景中识别物体等。为了在实践中做到这一点,我们需要灵活且高效的工具,以便能够适用于这些复杂任务,能够在合理的时间内对大量数据进行训练。我们需要已被训练过的模型在输入变量变化的情况下正确执行。接下来看看我们决定使用PyTorch的一些原因。PyTorch很容易被推广,因为它很简单。许多研究人员和实践者发现它易于学习、使用、扩展和调试。它是Python化的,虽然和任何复杂领域一样,它有注意事项和最佳实践示例,但对于以前使用过Python的开发人员来说,使用该库和使用其他Python库一样。更具体地说,在PyTorch中编写深度学习机是很自然的事情。PyTorch为我们提供了一种数据类型,即张量,通常用来存储数字、向量、矩阵和数组。此外,PyTorch还提供了操作它们的函数,我们可以使用这些函数来增量编程。如果我们愿意,还可以进行交互式编程,就像平常使用Python一样。如果你知道NumPy,那么你对交互式编程应是非常熟悉的。PyTorch具备2个特性,使得它与深度学习关联紧密。首先,它使用GPU加速计算,通常比在CPU上执行相同的计算速度快50倍。其次,PyTorch提供了支持通用数学表达式数值优化的工具,该工具用于训练深度学习模型。四、创建数据Tensors张量是一种特殊的数据结构,它和数组还有矩阵十分相似。在Pytorch中,Tensors可以在gpu或其他专用硬件上运行来加速计算之外,其他用法类似Numpy。importtorchimportnumpyasnp#直接从数据创建data=[[1,2],[3,4]]x_data=torch.tensor(data)x_data.shape#全为1x_ones=torch.ones_like(x_data)#retainsthepropertiesofx_dataprint(f"OnesTensor:\n{x_ones}\n")#全为0x_rand=torch.rand_like(x_data,dtype=torch.float)#overridesthedatatypeofx_dataprint(f"RandomTensor:\n{x_rand}\n")#查看tensor类型tensor=torch.rand(3,4)print(f"Shapeoftensor:{tensor.shape}“)print(f"Datatypeoftensor:{tensor.dtype}”)print(f"Devicetensorisstoredon:{tensor.device}")步骤2:自动梯度计算在Pytorch中可以使用tensor进行计算,并最终可以从计算得到的tensor计算损失,并进行梯度信息。在Pytorch中主要关注正向传播的计算即可。#x=torch.ones(2,2,requires_grad=True)x=torch.tensor([[1,2],[3,4]],dtype=float,requires_grad=True)print(x)y=x+2print(y)print(y.grad_fn)#y就多了一个AddBackwardz=y*y*3out=z.mean()print(z)#z多了MulBackwardprint(out)#out多了MeanBackward#计算公式:out=0.25((x+2)*(x+2)*3)out.backward()print(x.grad)步骤3:拟合曲线接下来我们将尝试使用Pytorch拟合一条曲线,我们首先的创建待你和的参数,并加载待训练的数据。#需要计算得到的参数w=torch.ones(1,requires_grad=True)b=torch.ones(1,requires_grad=True)#数据x_tensor=torch.from_numpy(x)y_tensor=torch.from_numpy(y)#目标模型#y=wx+b定义损失defmse(label,pred):diff=label-predreturntorch.sqrt((diff**2).mean())pred=x_tensor*w+bloss=mse(y_tensor,pred)#执行20次参数更新for_inrange(20):#重新定义一下,梯度清空w=w.clone().detach().requires_grad_(True)b=b.clone().detach().requires_grad_(True)#正向传播pred=x_tensor*w+b#计算损失loss=mse(y_tensor,pred)print(loss)#计算梯度loss.backward()五、完整代码(GPU)使用GPU训练只需要把训练数据、模型放入GPU中即可指定是否使用GPU训练模型device=torch.device("cuda:0"iftorch.cuda.is_available()else"cpu")模型放入GPU中model.to(device)数据放入GPU中inputs=torch.from_numpy(x_train).to(device)labels=torch.from_numpy(y_train).to(device)importtorchimporttorch.nnasnnimportnumpyasnpclassLinear_yy(torch.nn.Module):  def__init__(self,in_dim,media_dim,out_dim):    super(Linear_yy,self).__init__()    self.linear_1=torch.nn.Linear(in_dim,media_dim)    self.linear_2=torch.nn.Linear(media_dim,out_dim)       defforward(self,x):    x=self.linear_1(x)    x=self.linear_2(x)    returnx   in_dim=1media_dim=2out_dim=1model=Linear_yy(in_dim=in_dim,media_dim=media_dim,out_dim=out_dim)device=torch.device("cuda:0"iftorch.cuda.is_available()else"cpu")model.to(device)epochs=1000learning_rate=0.0001optimizer=torch.optim.Adam(model.parameters(),lr=learning_rate)loss_faction=torch.nn.MSELoss()forepochinrange(epochs):  epoch+=1  #注意转行成tensor  inputs=torch.from_numpy(x_train).to(device)  labels=torch.from_numpy(y_train).to(device)     #梯度要清零每一次迭代  optimizer.zero_grad()   #前向传播  outputs=model(inputs)  #计算损失  loss=loss_faction(outputs,labels)  #返向传播  loss.backward()  #更新权重参数  optimizer.step()  ifepoch%50==0:    print('epoch{},loss{}'.format(epoch,loss.item()))
  • 所需E币: 5
    时间: 2024-3-1 13:32
    大小: 5.61MB
    上传者: htwdb
    本文提出了一种基于深度学习的C语言代码缺陷定位方法。该方法不同于以往的利用缺陷报告或者以缺陷代码形成训练库的代码缺陷定位方法,而是基于OJ系统存在的大量正确代码形成检测模板,即将大量正确的代码作为训练数据通过深度学习技术进行训练构建代码模板库,通过找出与提交代码最相似的模扳代码,对缺陷代码进行缺陷定位。具体地,该方法将C语言代码表示为抽象语法树(AST)的形式,并对AST进行子树拆分,使用Word2vec词嵌入技术对代码进行编码,输入神经网络模型进行特征提取,构建代码模板库;在检测阶段将缺陷代码与代码模板库中的代码进行相似度计算,找出最相似的模板代码,通过逐句地词法分析找出缺陷语句,从而实现C语言代码的缺陷定位。通过对两个数据集以及相应测试集的构建来进行方法的有效性验证,结果表明本文的方法具有较好的缺陷定位效果。     其次,本文探索了该方法在C语言课程教学实验系统的应用,通过在实验代码提交页面添加“错误提示”功能,对代码的逻辑缺陷进行检测井反馈给学生,帮助学生更快地发现代码中可能存在的缺陷语句。最后,本文给出了针对该功能的可用性测试、性能测试、以及安全性测试结果,证明该方法在实际系统中的有效性
  • 所需E币: 1
    时间: 2023-6-28 13:51
    大小: 1.59MB
    上传者: 张红川
    深度学习开源框架.pptx
  • 所需E币: 1
    时间: 2023-6-28 13:50
    大小: 2.04MB
    上传者: 张红川
    【14】深度学习与神经网络.pptx
  • 所需E币: 1
    时间: 2023-6-28 13:44
    大小: 12.52MB
    上传者: 张红川
    动手学深度学习.pdf
  • 所需E币: 1
    时间: 2023-6-1 10:27
    大小: 146.5MB
    推荐系统与深度学习-黄昕等
  • 所需E币: 5
    时间: 2023-5-28 11:58
    大小: 5.07MB
    上传者: 木头1233
    《MATLAB深度学习简介》电子书
  • 所需E币: 1
    时间: 2023-5-12 11:52
    大小: 18.45MB
    TensorFlow深度学习从入门到进阶-张德丰
  • 所需E币: 1
    时间: 2023-5-9 10:09
    大小: 56.59MB
    深度学习入门之PyTorch-(博文视点AI系列)-廖星宇
  • 所需E币: 1
    时间: 2023-5-6 15:57
    大小: 180.38MB
    Python深度学习-(图灵程序设计丛书)-[美]FrançoisChollet
  • 所需E币: 1
    时间: 2023-5-6 12:08
    大小: 228.93MB
    深度学习:Caffe之经典模型详解与实战-乐毅-王斌
  • 所需E币: 0
    时间: 2023-4-19 10:05
    大小: 967B
    上传者: 开心就很好了
    分享一套图神经网络视频教程——《深度学习-图神经网络实战》,视频+源码+数据+文档资料下载!《深度学习-图神经网络实战》课程旨在帮助同学们快速掌握深度学习在图模型领域算法及其应⽤项⽬。内容主要包括三个模块:1、图神经⽹络经典算法解读,详细解读GNN,GCN,注意⼒机制图模型等算法;2、图神经⽹络框架PyTorch-Geometric,全程实战解读图神经⽹络框架应⽤⽅法;3、图神经⽹络项⽬实战,基于真实数据集与实际项⽬展开图数据集构建与模型训练并应⽤到实际场景中。整体⻛格通俗易懂,提供全部数据与代码。课程大纲:第1章图神经网络基础第2章图卷积GCN模型第3章图模型必备神器PyTorchGeometric安装与使用第4章使用PyTorchGeometric构建自己的图数据集第5章图注意力机制与序列图模型第6章图相似度论文解读第7章图相似度计算实战第8章基于图模型的轨迹估计第9章图模型轨迹估计实战第10章图神经网络结合时间序列第11章图时间序列预测项目实战第12章异构图模型算法解读第13章异构图构建实例分析第14章KIE图模型关系抽取算法解读第15章KIE图模型应用源码解读
  • 所需E币: 1
    时间: 2023-4-26 19:03
    大小: 185MB
    深度学习全书:公式+推导+代码+TensorFlow-全程案例-陈昭明(epub格式,附阅读器安装程序)
  • 所需E币: 1
    时间: 2023-4-26 09:46
    大小: 132.01MB
    TensorFlow+Keras深度学习人工智能实践应用-林大贵-清华大学出版社
  • 所需E币: 1
    时间: 2023-4-18 11:33
    大小: 200.19MB
    TensorFlow+Keras深度学习人工智能实践应用-林大贵
  • 所需E币: 1
    时间: 2023-4-19 10:44
    大小: 19MB
    走向TensorFlow2.0:深度学习应用编程快速入门-赵英俊(epub格式,附阅读器安装程序)