网站开发 图片存放网站建设流程六个步骤

web/2025/9/30 3:51:32/文章来源:
网站开发 图片存放,网站建设流程六个步骤,宁波品牌网站制作哪家好,网站开发需要什么软件背景在使用PyTorch深度学习框架的时候#xff0c;不管是训练还是测试#xff0c;代码中引入PyTorch的第一句总是#xff1a;import torch在Gemfield前述专栏文章里#xff0c;我们已经得知#xff0c;torch/csrc/stub.cpp链接libshm.so、libtorch_python.so、libcaffe2_gp…背景在使用PyTorch深度学习框架的时候不管是训练还是测试代码中引入PyTorch的第一句总是import torch在Gemfield前述专栏文章里我们已经得知torch/csrc/stub.cpp链接libshm.so、libtorch_python.so、libcaffe2_gpu.so生成了_C.cpython-37m-x86_64-linux-gnu.so库而像前述方式import torch的时候按照python规范会找到torch package目录下的__init__.py在这个文件中进一步会调用from torch._C import *其中torch._C就是_C.cpython-37m-x86_64-linux-gnu.so。因为(以Python3为例)按照Python规范由于默认的引擎都是CPython而CPython的C/C扩展是一个共享库并且这个共享库安装在PYTHONPATH目录下并且文件名(不包含后缀)要和module的名字一样并且这个共享库中要实现PyInit_modulename符号来作为import时候的逻辑入口。对于PyTorch来说这个modulename 是_C因此我们可以揣测在torch/csrc/stub.cpp中一定实现了PyInit_C这个函数。是的PyTorch就是这么做的torch/csrc/stub.cpp中的代码就是下面这样#include extern PyObject* initModule();PyMODINIT_FUNC PyInit__C(){return initModule();}本文将从initModule函数展开全面阐述PyTorch框架的初始化工作。initModule就是PyTorch初始化时候的第一层调用栈了因为所有的初始化工作都是在这个函数内完成的内容比较多gemfield将其划分为7部分1torch._C的诞生这一步就是产生torch._C类并在这个python类上面注册众多函数PyObject* initModule() {//openmp的设置THInferNumThreads();THPUtils_addPyMethodDefs(methods, TorchMethods);THPUtils_addPyMethodDefs(methods, DataLoaderMethods);THPUtils_addPyMethodDefs(methods, torch::autograd::python_functions());THPUtils_addPyMethodDefs(methods, torch::multiprocessing::python_functions());THPUtils_addPyMethodDefs(methods, THCPModule_methods());THPUtils_addPyMethodDefs(methods, THCUDNN_methods());THPUtils_addPyMethodDefs(methods, THDPModule_methods());THPUtils_addPyMethodDefs(methods, torch::distributed::c10d::python_functions());module Py_InitModule(torch._C, methods.data());......}其中TorchMethods注册了29个方法都是THPModule_前缀的函数DataLoaderMethods注册了4个方法都是THPModule_前缀的函数torch::autograd::python_functions注册了4个方法torch::multiprocessing::python_functions注册了1个方法THCPModule_methods注册了37个CUDA相关的函数前缀都是THCPModule_THCUDNN_methods注册了1个方法THDPModule_methods注册了28个方法torch::distributed::c10d::python_functions注册了1个方法。总而言之在这一小步我们达到了这样一个里程碑torch._C符号诞生并且向torch._C注册了一百余个函数涉及torch、dataloader、autograd、multiprocess、cuda、cudnn、distribute、c10d方面。2一些关键类型以下代码先后初始化了torch._C._PtrWrapper、torch._C.Generator(含5个方法)、FatalError、torch.Size、torch.dtype、torch.iinfo、torch.layout、torch.devicePyObject* initModule() {......THPWrapper_init(module);THPGenerator_init(module);THPException_init(module);THPSize_init(module);THPDtype_init(module);THPDTypeInfo_init(module);THPLayout_init(module);THPDevice_init(module);THPVariable_initModule(module);THPFunction_initModule(module);THPEngine_initModule(module);......}3torch._C._TensorBase的诞生Gemfield将以下三个初始化函数归为这一小节PyObject* initModule() {......THPVariable_initModule(module);THPFunction_initModule(module);THPEngine_initModule(module);......}为什么呢因为地位太显赫了。THPVariable_initModule(module) 创建了torch._C._TensorBase这是一切Tensor的基类在Gemfield的其它专栏文章里将单独解释THPFunction_initModule(module)创建了torch._C._FunctionBase在torch/autograd/function.py中以下两个类以torch._C._FunctionBase为基类class Function(with_metaclass(FunctionMeta, _C._FunctionBase, _ContextMethodMixin, _HookMixin))class BackwardCFunction(_C._FunctionBase, _ContextMethodMixin, _HookMixin)这个Function继承体系就构成了DAG的基础。THPEngine_initModule(module)创建了torch._C._EngineBase_EngineBase这个类负责动态图执行之前的preprocess_EngineBase会将torch.autograd的backward之类的请求预处理后送给真正的Engine去执行。4pybind11绑定这一小节的初始化内容都是和pybind11相关的PyObject* initModule() {......// NOTE: We need to be able to access OperatorExportTypes from ONNX for use in// the export side of JIT, so this ONNX init needs to appear before the JIT// init.torch::onnx::initONNXBindings(module);torch::jit::initJITBindings(module);torch::autograd::initNNFunctions(module);torch::autograd::init_legacy_variable(module);torch::python::init_bindings(module);torch::cuda::initModule(module);......}initONNXBindings是ONNX的python bindingtorch._C._onnx.TensorProtoDataType和torch._C._onnx.OperatorExportTypes dir(torch._C._onnx.TensorProtoDataType)[BOOL, COMPLEX128, COMPLEX64, DOUBLE, FLOAT, FLOAT16, INT16, INT32, INT64, INT8, STRING, UINT16, UINT32, UINT64, UINT8, UNDEFINED, __class__, __delattr__, __dir__, __doc__, __eq__, __format__, __ge__, __getattribute__, __getstate__, __gt__, __hash__, __init__, __int__, __le__, __lt__, __members__, __module__, __ne__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __setstate__, __sizeof__, __str__, __subclasshook__, name] dir(torch._C._onnx.OperatorExportTypes)[ONNX, ONNX_ATEN, ONNX_ATEN_FALLBACK, RAW, __class__, __delattr__, __dir__, __doc__, __eq__, __format__, __ge__, __getattribute__, __getstate__, __gt__, __hash__, __init__, __int__, __le__, __lt__, __members__, __module__, __ne__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __setstate__, __sizeof__, __str__, __subclasshook__, name]initJITBindings则是通过pybind11往torch._C上注册了一堆和JIT相关的C函数/对象initNNFunctions初始化了一个torch._C._nn 对象并注册了一些nn相关的函数 dir(torch._C._nn)[__doc__, __loader__, __name__, __package__, __spec__, _parse_to, adaptive_avg_pool2d, adaptive_avg_pool3d, adaptive_max_pool2d, adaptive_max_pool3d, avg_pool2d, avg_pool3d, binary_cross_entropy, elu, elu_, \fractional_max_pool2d, glu, hardtanh, hardtanh_, l1_loss, leaky_relu, leaky_relu_, log_sigmoid, max_pool2d_with_indices, max_pool3d_with_indices, max_unpool2d, max_unpool3d, mse_loss, multi_margin_loss, \multilabel_margin_loss, nll_loss, nll_loss2d, reflection_pad1d, reflection_pad2d, replication_pad1d, replication_pad2d, replication_pad3d, rrelu_with_noise, rrelu_with_noise_, smooth_l1_loss, soft_margin_loss, \softplus, softshrink, thnn_conv2d, thnn_conv3d, thnn_conv_depthwise2d, thnn_conv_dilated2d, thnn_conv_dilated3d, thnn_conv_transpose2d, thnn_conv_transpose3d, upsample_bilinear2d, upsample_linear1d, upsample_nearest1d, \upsample_nearest2d, upsample_nearest3d, upsample_trilinear3d]init_legacy_variable注册了torch._C._LegacyVariableBase dir(torch._C._LegacyVariableBase)[__class__, __delattr__, __dir__, __doc__, __eq__, __format__, \__ge__, __getattribute__, __gt__, __hash__, __init__, __le__, \__lt__, __ne__, __new__, __reduce__, __reduce_ex__, __repr__, \__setattr__, __sizeof__, __str__, __subclasshook__]_LegacyVariableBase类会派生出Variable类(该类的_execution_engine会初始化为torch._C._EngineBase)class Variable(with_metaclass(VariableMeta, torch._C._LegacyVariableBase))init_bindings是通过pybind11往torch._C上注册一些函数torch::cuda::initModule类似也是通过pybind11往torch._C上注册一些函数只不过内容是和cuda相关的。5在torch._C上注册StorageBase类PyObject* initModule() {......THPDoubleStorage_init(module);THPFloatStorage_init(module);THPHalfStorage_init(module);THPLongStorage_init(module);THPIntStorage_init(module);THPShortStorage_init(module);THPCharStorage_init(module);THPByteStorage_init(module);THCPDoubleStorage_init(module);THCPFloatStorage_init(module);THCPHalfStorage_init(module);THCPLongStorage_init(module);THCPIntStorage_init(module);THCPShortStorage_init(module);THCPCharStorage_init(module);THCPByteStorage_init(module);THCPStream_init(module);......}这些初始化工作主要就是往torch._C上注册了以下类CudaByteStorageBaseCudaCharStorageBaseCudaDoubleStorageBaseCudaFloatStorageBaseCudaHalfStorageBaseCudaIntStorageBaseCudaLongStorageBaseCudaShortStorageBaseByteStorageBaseCharStorageBaseDoubleStorageBaseFloatStorageBaseHalfStorageBaseIntStorageBaseLongStorageBaseShortStorageBase比如以FloatStorageBase为例的话我们可以这样查看它注册的方法 dir(torch._C.FloatStorageBase)[__class__, __delattr__, __delitem__, __dir__, __doc__, __eq__, __format__, __ge__, __getattribute__, __getitem__, __gt__, __hash__, __init__, __le__, __len__, __lt__, \__ne__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __setitem__, __sizeof__, __str__, __subclasshook__, _cdata, _expired, _free_weak_ref, \_get_shared_fd, _new_shared_fd, _new_shared_filename, _new_using_fd, _new_using_filename, _new_with_file, _new_with_weak_ptr, _set_cdata, _set_from_file, _share_fd_, \_share_filename_, _shared_decref, _shared_incref, _weak_ref, _write_file, copy_, data_ptr, element_size, fill_, from_buffer, from_file, is_pinned, is_shared, new, \resize_, size]这些类会在python体系中被继承class FloatStorage(_C.FloatStorageBase, _StorageBase)另外注意下这块代码使用了一些宏来复用不同storage的代码如下所示aten/src/TH/THGenerateLongType.h:10:#define Real Longaten/src/TH/THGenerateHalfType.h:10:#define Real Halfaten/src/TH/THGenerateIntType.h:10:#define Real Intaten/src/TH/THGenerateFloatType.h:9:#define Real Floataten/src/TH/THGenerateShortType.h:10:#define Real Shortaten/src/TH/THGenerateCharType.h:8:#define Real Charaten/src/TH/THGenerateByteType.h:8:#define Real Byteaten/src/TH/THGenerateDoubleType.h:9:#define Real Doubleaten/src/THC/THCGenerateIntType.h:7:#define Real Intaten/src/THC/THCGenerateLongType.h:7:#define Real Longaten/src/THC/THCGenerateCharType.h:7:#define Real Charaten/src/THC/THCGenerateFloatType.h:9:#define Real Floataten/src/THC/THCGenerateDoubleType.h:7:#define Real Doubleaten/src/THC/THCGenerateHalfType.h:9:#define Real Halfaten/src/THC/THCGenerateShortType.h:7:#define Real Shortaten/src/THC/THCGenerateByteType.h:7:#define Real Byte6ATen的初始化本小节会进行ATen的global context的初始化然后使用at::globalContext().defaultGenerator(at::kCPU)进行generator的初始化。另外PyTorch会根据编译环境和用户配置然后向torch._C上注册一些flag。这些flag有has_cudnn、has_mkl、has_lapack、_GLIBCXX_USE_CXX11_ABIPyObject* initModule() {......PyObject *has_cudnn Py_True;set_module_attr(has_cudnn, has_cudnn);at::init();py::reinterpret_borrow:module(module).def(_demangle, c10::demangle);::c10::Warning::set_warning_handler(warning_handler);set_module_attr(has_mkl, at::hasMKL() ? Py_True : Py_False);set_module_attr(has_lapack, at::hasLAPACK() ? Py_True : Py_False);set_module_attr(_GLIBCXX_USE_CXX11_ABI, _GLIBCXX_USE_CXX11_ABI ? Py_True : Py_False);auto defaultGenerator at::globalContext().defaultGenerator(at::kCPU);THPDefaultGenerator (THPGenerator*)THPGenerator_NewWithGenerator(defaultGenerator);set_module_attr(default_generator, (PyObject*)THPDefaultGenerator, /* incref */ false);7torch._C._THNN和torch._C._THCUNN的初始化PyTorch在这一小节里注册了torch._C._THNN和torch._C._THCUNN类PyObject* initModule() {......torch::nn::init__THNN(module);torch::nn::init__THCUNN(module);......}这两个类都拥有数量巨大的op函数一个是CPU版的一个是CUDA版的。initModule之后在initModule()函数初始化完毕之后import torch的初始化工作还没有结束。因为在这之后python的初始化脚本还要调用以下2个API才算真正完成全部的初始化_C._initExtension(manager_path())_C._init_names(list(torch._storage_classes))其中主要的工作都是在_C._initExtension中这个初始化做了以下的工作torch::utils::initializeLayouts();torch::utils::initializeDtypes();torch::tensors::initialize_python_bindings();THPDoubleStorage_postInit(module);THPFloatStorage_postInit(module);THPHalfStorage_postInit(module);THPLongStorage_postInit(module);THPIntStorage_postInit(module);THPShortStorage_postInit(module);THPCharStorage_postInit(module);THPByteStorage_postInit(module);THPBoolStorage_postInit(module);//定义在THPStorage_(postInit)函数中因为THPStorage_会被宏替换THPDoubleStorage_ \//THPFloatStorage_、THPHalfStorage_、THPLongStorage_......THPAutograd_initFunctions();最后的THPAutograd_initFunctions()则是初始化了torch的自动微分系统这是PyTorch动态图框架的基础。总结在PyTorch的初始化阶段(python)torch模块先后初始化产生torch._C、torch._C._TensorBase、pybind11绑定、torch._C.*StorageBase、torch._C._THNN、torch._C._THCUNN并进行了ATen context的初始化。在initModule()结束之后初始化工作还进行了_C._initExtension()的初始化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站开发需要20万网站后台登陆地址

小蓝有一个超大的仓库,可以摆放很多货物。 现在,小蓝有 n 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。 小蓝希望所有的货物最终摆成一个大…

无限空间 网站WordPress又拍云联盟代码

javascript高级-数组的使用方法 改变原数组返回一个新数组或不改变原数组的等应用场景,如下这些方法在实际项目中通常会用上 getArrlen() {//1.改变原数组的方法let arr [1, 2, 3];arr.push(6); //给数组最后面的添加元素console.log(push, arr); //[1,2,3,6]arr.pop(); //删…

手机百度提交入口上海关键词排名优化怎样

Inception V1 GoogLeNet结构(Inception V1) 输入为224x224的RGB图像,‘#3x3 reduce’和‘#5x5 reduce’表示3x3和5x5卷积之前1x1的卷积核的个数。 转载于:https://www.cnblogs.com/Peyton-Li/p/11201038.html

网站文章更新频率软件开发外包公司

场景介绍 本章节将向您介绍如何使用地图的手势。 Map Kit提供了多种手势供用户与地图之间进行交互,如缩放、滚动、旋转和倾斜。这些手势默认开启,如果想要关闭某些手势,可以通过MapComponentController类提供的接口来控制手势的开关。 接口说明 以下是地图的控件和手势相…

修改网站备案信息永州网站制作

前言 本文介绍激光雷达与相机进行多层次融合,包括数据级融合、特征级融合和BEV级融合。 融合后的BEV特征可以支持不同的任务头,包括语义分割、实例编码和方向预测,最后进行后处理生成高清地图预测,它是来自ICRA 2024的。 会讲解…

哈尔滨专业网站制作设计阿里巴巴做网站教程

对于每个人来说,计算机都是至关重要的家用电器. 因为使用计算机可以使我们的业余生活丰富多彩. 随着Internet的普及,越来越多的用户开始学习自己使用计算机. 但是,操作中仍然存在很多问题,只要每个人都学会了远程控制,…

手机触屏版网站襄阳网站建设知名品牌

二、运算符与程序流程控制 1、运算符 1.1 算术运算符 算术运算符用于组织整数类型和浮点类型的数据,有一元运算符和二元运算符之分。 一元算术运算符有两个:(正号)和-(负号),例如&#xff1…

广州网站建设 讯度网络wordpress presscore

Magnet是一款用于Mac操作系统的窗口管理工具,它可以帮助您快速和方便地组织和管理应用程序窗口,以提高您的工作效率和多任务处理能力。 以下是Magnet的一些主要功能和特点: 窗口自动调整:Magnet允许您通过简单的拖放操作或使用快…

网站开发类的合同范本wordpress不知道用户名和密码

工资是指劳动者付出体力或脑力劳动后所得的对价,体现的是劳动者创造的社会价值。自我国劳动争议仲裁制度建立以来,工资(劳动报酬)争议一直是劳动争议的热点。如何准确把握工资标准的认定,对维护劳动者合法权益、构建和谐稳定的劳动关系具有重…

遵义做网站优化汕头建网站

firefox浏览器中silverlight无法输入问题今天用firefox浏览silverlight网页,想在文本框中输入内容,却没想到silverlight插件意外崩溃了。google一下,发现这是firefox的设置问题,解决方法如下: 1、在Firefox浏览器地址栏…

水利建设管理司网站wordpress 扩展

前言 话说我一冲动买了512G固态硬盘,原本是装个ubuntu系统的,这个好装,但是用处太少,就像改成win10的 经历一堆坑之后,终于使用WTG安装好了 步骤 1.下载个WTG辅助工具 Windows To Go 辅助工具|WTG辅助工具 v5.6.1…

邢台网站制作市场互联网创业项目有哪些

1 DETR算法概述 ①端到端 ②Transformer-model 之前的方法都需要进行NMS操作去掉冗余的bounding box或者手工设计anchor, 这就需要了解先验知识,增加从超参数anchor的数量, 1.1 训练测试框架 一次从图像中预测n个object的类别 训练阶段我们…

手机网站建设如何网站建设与管理的策划书

大家好,我是大彬~ 今天跟大家分享知识星球小伙伴关于【非科班转码如何补基础】的提问。 往期星球提问整理: 读博?找工作? 性格测试真的很重要 想找一份实习工作,需要准备什么 球友提问: 大彬大佬&#xf…

网站备案安全吗网站建设与运营及营销服务

数据结构 ​ 是计算机储存、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素 利用一些方式实现一些项目在内存中奖数据存储起来。 1、数组 2、链表 3、树 算法 ​ 就是定义良好的计算过程,它取一个或一组的值为输入,并…

网站前端开发语言帝国cms做网站流程

打开命令面板搜索不到Install Package,说明没有安装Package Control。 如何安装Package Control? 首先打开Package Control中文镜像,打开后如下图所示: 点击「Install Now」后,如下图所示: 我们看到有两…

网站作为医院形象建设重庆建站管理系统信息

对于自动驾驶的商业化落地来说,这个「性感」的赛道一直备受争议。在过去几年,包括港口、矿山等在内的封闭场景进入商业订单的收获期;但类似干线物流这样的半开放式场景,却喜忧参半。 今年初,作为全球自动驾驶领域的技…

做钓鱼网站的公司php做网站需要啥技术

C 析构函数概述C 析构函数是一个特殊的成员函数,作用与构造函数相反,它的名字是类名的前面加一个~符号,析构函数是与构造函数作用相反的函数,当对象的生命期结束时,会自动执行析构函数。C 执行析构函数的情…

河南省教育厅官方网站师德建设手机网站用什么软件做的好

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼再写一下我的初试经验。今天晚上有时间再更初试政治:政治切忌开始太早,战线过长,我是从9月开始,跟着肖秀荣的视频课看了一遍精讲精练,做了一遍1000题,一遍真题…

简单网站的制作论文中引用网站怎么写

物料账介绍物料分类账(Material Ledger)是SAP财务模块的重要功能之一,用于对标准价计价的物料进行差异处理。激活ML后,系统会在"工厂物料"层(或更细的层次)为每个物料建立子账簿,记录该物料在各个期间的数量、价值变化情况。月底运…