首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏AutoML(自动机器学习)

    华为诺亚AutoML框架-Vega:(2) 代码结构

    本文将从代码结构的角度来介绍Vega,帮助大家对Vega有一个全局的了解,主要起到一个帮助索引查找的作用。 ? Zeus的代码结构如上图所示,每个模块的作用其实可以看名字也能大概知道,下面对各个模块做一个简单的介绍,后续的教程会做进一步的分析。 common 该目录下主要提供了各种参数配置组件和注册工厂。 其代码大致示例如下: 1 class Config(dict): 2 def __init__(self, *args, **kwargs): 3 """Init config modules、 networks、model_zoo 这三个模块提供的都是模型结构,看名字可能会觉得有点搞不清楚,区别在于 modules提供的是一些基础模块,Conv2D、MaxPool2d、ResBlock 在运行代码前必须设置好Backend,否则会报错。因为只有这样才能,才能知道应该调用哪个框架的模型结构。 run.py 这是Vega框架的运行入口,代码如下所示。

    87320发布于 2021-01-29
  • 来自专栏程序猿的那点事

    Android P中WIfi P2P代码结构

    从FrameWork层开始,Wifi P2P和Wifi的代码就开始分开了,当然只是在Wifi目录下新建了一个p2p文件夹来单独存放p2p的相关代码。下面我们来看一下这些代码。 //wifi p2p设备的信息 WifiP2pDeviceList.java //wifi p2p设备列表 WifiP2pGroup.java //p2p组信息 WifiP2pGroupList.java //p2p组列表 WifiP2pInfo.java //一个Wi-Fi P2P组的连接信息 WifiP2pManager.java //提供管理p2p的API WifiP2pProvDiscEvent.java WifiP2pNative.java //作为java代码和底层的桥梁之一 WifiP2pService.java //无线上网的P2P服务类,实例化的P2P服务 WifiP2pServiceImpl.java //守护wpa_supplicant的hidl接口 p2p_iface.h p2p_network.cpp p2p_network.h 基本上上层就这些代码了,有遗漏的以后找到再补充。

    1.9K30发布于 2020-07-15
  • 来自专栏源码之路

    Class文件结构(2)——用java代码实现解析Class文件

    本文,我们编写JAVA程序来解析class文件,读者注意,阅读本文前先详细了解Class文件结构,可参考笔者前一篇文章:Class文件结构(1)—手动解析每一个字节,你看不懂 代码地址:https ://github.com/congzhizhi/classFile,我就贴测试代码了,github上项目路径下的test有测试代码。 创建字段结构对应的Java类FieldInfo,如代码 public class FieldInfo { private U2 access_flags; private U2 name_index class文件结构的属性表解析器AttributesHandler的实现如代码 public class AttributesHandler implements BaseByteCodeHandler 该属性不一定会编译到class文件中,如果没有该属性,那么查看反编译后的java代码将会使用诸如arg0、arg1、arg2之类的名称代替局部变量的名称。

    3.7K10发布于 2021-02-05
  • 来自专栏技术开源分享

    2 目录结构

    本项目目录结构参考当前网址 参考目录 目录结构修改 vonic-webpack-starter 是vonic-template下载后的目录,自动生成结构保持不变,只需要改变Src目录下的目录结构,对修改后的结构进行简单说明如下 : assets:静态资源 components:自定义组件 router:vue-router路由 store:vuex状态管理 page:页面 utils:工具集 不同的目录结构下包含不同内容 Src目录结构图.png 别名设置 进入 build/webpack.base.config.js 设置目录别名 基于1.0设置的文件夹结构,对当前项目设置特殊别名 ?

    1.2K30发布于 2018-10-31
  • 来自专栏cwl_Java

    C++编程之美-结构之法(代码清单3-2)

    代码清单3-2 char c[10][10] = { "", //0 "", //1 "ABC", //2 "DEF", //3

    28240编辑于 2022-11-30
  • 来自专栏不止于python

    python代码基本结构

    相当于其他语言的switch和case, 可以有多个elif, 但只会执行其中一个项 # 基本结构 if 条件成立: 执行代码块1 elif 条件2成立: 执行代码2 elif 条件3 print("条件成立") # 输出结果 # 条件成立 双项分支 # 双向分支 """ if 条件成立: 执行代码块1 else: 执行代码2 """ # 举例 if 5 > : 执行代码2 else: 执行代码块3 """ # 举例 if 5 > 12: print("5 > 12") elif 5 < 12: print("5 < 12 # 嵌套结构 """ if 条件成立: if 条件成立: 执行代码块1 else: 执行代码2 else: 执行代码块3 """ if 5 == 18 格式2 while循环中的else是在while条件表达式为假的情况下执行的代码内容 # 基本结构 """ while 条件成立: 执行代码块 else: # 条件不成立

    84430编辑于 2022-05-31
  • 代码结构:协作基石

    在软件开发的世界里,代码结构就如同建筑的框架,支撑着整个项目的运行。想象一下,你加入了一个新的开发团队,接手一个已经有一定规模的项目。 清晰的代码结构则截然不同,它就像是一本条理清晰的书籍,每个章节(模块)都有明确的主题,段落(函数)之间过渡自然,语句(代码行)表意明确。 每个部分职责明确,代码结构清晰。当需要添加新的业务功能时,开发人员可以很容易地找到对应的模型层进行修改;当要优化界面显示时,直接在视图层进行调整即可。 这种清晰的结构使得团队成员之间的协作更加顺畅,开发效率大幅提高。 常见的代码结构组织方式有很多种。 例如,可以在接口的 URL 中添加版本号,如https://api.example.com/v1/book表示 v1 版本的图书接口,当需要更新接口时,可以发布 v2 版本的接口,而不影响使用 v1 版本接口的用户

    17310编辑于 2025-10-14
  • 来自专栏程序人生

    代码结构的演进

    最早的代码估计没有项目的概念,只是一个文件,几张A4纸就能将其表述清楚。这时的代码有最原始的控制结构(jmp,goto),整个程序揉在一起,被形象地称作意大利面条(spaghetti)。 意大利面条式的代码撑不到太大的规模,便超出了人脑所能理解的范畴。为了让代码更可读,从goto中衍生出了更好的控制逻辑:分支,循环(或者递归),以及用于管理目的的 [1] 函数,类 [2] 和模块。 代码可以以更清晰,更可控地方式被撰写。 感谢文件系统的诞生,原本处在一个平面上的代码被人们以树状的结构进行管理。功能不相干的代码被放入不同的文件,继而放在不同的目录,于是库或者模块的概念产生了。 可程序员们还在呼唤更好的解决之道:既然静态的代码可以用树状的层级结构来管理,为什么运行时的代码不能采用同样的方式呢? Don’t Repeat Yourself可以视作代码管理的一种手段 2. functional language没有类的概念,只有函数和模块 3.

    1.3K50发布于 2018-03-28
  • 来自专栏蔻丁杂记

    rust 代码组织结构

    使用包、Crate 和模块管理不断增长的项目 - Rust 程序设计语言 中文版 rust 组织结构中,包括以下几个概念 Package(包),Crate(箱),Moudle(模块) Package 这是 代码结构如下 src ╰-main.rsCargo.tomlCargo.lock 默认约定,main.rs 表示的是 bin Crate,里面有 main 函数入口,其 Crate 的名称(也是产生的可执行文件的名称 名字分别是 cat1 和 cat2(对应的可执行文件的名字也是这个)。 示例代码:如果你正在创建一个库并且想要提供一些示例代码,你可以创建一个或多个 bin crate 来展示如何使用你的库。 在 lib.rs 中,使用如下代码进行导出。

    52900编辑于 2024-12-25
  • 来自专栏文武兼修ing——机器学习与IC设计

    基于gluon的Inception结构Inception结构代码

    Inception结构 初级Inception 结构 初级Inception结构如下所示: inception_naive.png 其前向传播分为4个部分: 通过1x1卷积 通过3x3卷积,padding 改进Inception结构 结构 改进的Inception结构如下图所示 inception.png 同样具有四条前向传播通路,如下所示: 1x1卷积 先通过1x1卷积降维,再通过3x3卷积 先通过1x1 可以发现无论是运算量还是参数量都小于原结构 代码 import mxnet as mx import numpy as np Inception结构搭建 Inception结构 class inception self.pool_post(self.pool(x))] return mx.ndarray.concat(dim=1,*result) Inception结构测试 ((1,5,10,10),mx.gpu()) inception_model(indata).shape (1, 40, 10, 10) 整体网络结构 class network(mx.gluon.Block

    92080发布于 2018-04-27
  • 来自专栏简书专栏

    Python程序结构2

    循环嵌套2.png-50.2kB ? 循环嵌套3.png-46.8kB ? = [k for k in range(1,10000000)] print(time.time()-startTime) 上面一段代码的运行结果如下,从下面的结果可以看出速度差距为2、3倍左右 16, 25, 36, 49, 64, 81] [2, 3, 4, 5, 6, 7, 8, 9, 10] [2, 4, 6, 8] ['a', 'b', 'c', 'd', 'e', 'f', : h 在python中,for...else结构的作用,else后面接的执行语句在for循环正常执行完,即不是通过break跳出的情况下才会执行。 上面一段代码的运行结果如下: found it! i = 5 for循环练习 有四个数字:1、 2 、3、 4,能组成多少个互不相同且无重复数字的三位数?各是多少?

    56030发布于 2018-09-10
  • 来自专栏气象杂货铺

    xarray | 数据结构(2)

    2, 3) >> precip = 10 * np.random.rand(2, 2, 3) >> lon = [[-99.83, -99.32], [-99.79, -99.23]] >> lat pd.date_range('2014-09-06', periods=3) >> ds.coords['reference_time'] = pd.Timestamp('2014-09-05') 和 matlab 中的结构体变量非常相似 >> ds2 <xarray.Dataset> Dimensions: (time: 3, x: 2, y: 2) Coordinates: lat ( 使用 assign 和 assign_coords 可以改变类字典,而且会返回具有额外变量的新数据集: >> ds.assign(temperature2 = 2 * ds.temperature) < 创建新对象代替那些存在的”变异“变量,对于理解代码来说是有利的。

    4.5K30发布于 2020-04-21
  • 来自专栏高性能服务器开发

    (三)dict哈希结构2

    / uint32_t dictGetHashFunctionSeed(void) { return dict_hash_function_seed; } /* MurmurHash2, We can read a 4-byte value from any address without crashing * 2. sizeof(int) == 4 * * And it has * 2. } /* Handle the last few bytes of the input array */ switch(len) { case 3: h ^= data[2] << 16; case 2: h ^= data[1] << 8; case 1: h ^= data[0]; h *= m; }; /* Do a few final

    74990发布于 2018-04-13
  • 来自专栏哲学驱动设计

    OpenExpressApp 框架结构2

        上次随便画了一篇关于GIX4项目目前的类的结构图(见:GIX4 目前大致的类结构),目的是为了更好的认识系统,并对其进行改进。发现AutoUI部分的耦合性比较大。 图2 实体元数据 结构图 ? 图3 逻辑视图(ObjectViews) 结构图 ? 图4 命令结构图 ? 图5 列表编辑器(ListEditors) ? 图8.2 视图控制器(2) ? 图8.3 视图(窗体) ? 图9 AutoUI结构图 目前就画到这里,已经可以从图中比较清晰地看出目前框架的主要结构和功能。 OpenExpreessApp,详见: 开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布 信息系统开发平台OpenExpressApp - 支持日志功能 1.GIX4 目前大致的类结构 2.OpenExpressApp 框架结构2

    62990发布于 2018-01-29
  • 来自专栏嵌入式学习

    结构体内存对齐——2

    colormap; char bgcolor; char ratio; }__attribute__ ((aligned(4))); 对齐到4字节 = 3+3+2+ 4+1+1+1+1 = 16 struct gif_hdr v1 = {1,2,3,4,5,6,7,8,9,10,11}; struct gif_hdr *dsptr;

    51820发布于 2020-09-07
  • 来自专栏生信补给站

    Perl_控制结构(2)

    for:for(初始化;循环条件;操作1){操作2;} 当不满足循环条件时,退出循环,例如: for($i=0;$i<4;$i++){print “$i “;} # 输出:0 1 2 3 foreach :历遍数组,例如: foreach $i(0..3){print “$i “;} # 输出:0 1 2 3 for也有同样的功能: for $i(0..3){print “$i “;} # 输出:0 1 2 3 while:while(条件){操作;}  #直到条件不成立才退出循环 until:until(条件){操作;} #直到条件成立才退出循环 my $i = 4; while($i){print “$i “;$i--;};         #输出:4 3 2 1 print “\$i = $i\n”;               #输出:$i = 0 until($i>4){print “$i if($i>2){last;}          print“$i “; }                                    #输出:1 2

    57420发布于 2020-08-06
  • 来自专栏架构师成长之路

    PHP扩展代码结构详解

    PHP扩展代码结构详解 : 这个是继: 使用ext_skel和phpize构建php5扩展 内容 (拆分出来) Zend_API:深入_PHP_内核:http://cn2.php.net/ 使用ext_skel 生成的代码都是PHP_开头的宏, 而不是ZEND_开头. 实际上这两者是一样的。 这些函数的引入是通过一个包含有N个zend_function_entry结构的数组来完成的。 你可能已经看到了,这个结构的最后一项是 {NULL, NULL, NULL}。 2)宏 ZEND_FE(“Zend Function Entry”的简写)将简单地展开为一个zend_function_entry结构

    66210编辑于 2022-04-14
  • 来自专栏计算机二级C语言

    C语言程序结构2:选择(分支)结构

    C语言程序结构0 C语言程序结构1:选择(分支)结构 很多人觉得if嵌套比较难,其实理清楚程序结构很简单。 if(条件) {分支1} //当条件为真,执行分支体1 else {分支2} //当条件为假,执行分支体2 //分支体可以是一条语句,此时“{ }”可以省略, //也可以是多条语句即复合语句 表达式1;表达式2;表达式3)//循环 { 循环体;//又可以嵌套循环结构或者选择结构 } } //当条件为假,执行分支体2 //分支体可以是一条语句,此时“{ }”可以省略 写代码时,要注意缩进,分清层次。嵌套语句缩进能清楚地看到if else配对关系,方便阅读,理清思路。 break;   case 常数2:      代码2;      break;   ……   default:      代码段n;      break; } 注意: 第一,case中必须是常数

    83310发布于 2020-03-25
  • 来自专栏golang云原生new

    redis 存储结构原理 2

    type 字段对应的操作函数,具体有哪些操作函数,我们可以看到typedef struct dictType 给出的信息 privdata 字典依赖的数据,例如 redis 具体的操作等等 ht[2] 我们在 redis 源码中 src\server.h 也能够看到 redisdb 的数据结构 我们可以看到 dict 这个字典,是 redis 中使用是相当频繁和关键的 上面有说到 ht[2] 会用在渐进式 ht[0] 数据拷贝到 ht[1] 的方式一 是这样进行 rehash 的 : 扩容的时候,rehash 是这样做的: 先会对上述说到的 ht[1] 开辟内存空间,会将 ht[0].size * 2 目前是否在做持久化的时候,当我们每次操作 redis 增删改查,就会进行边枚举边筛查的方式,逐步的将 ht[0][0] ... ht[0][size-1] rehash 到 ht[1] 中 可以追一下代码流程 , 我们从 src\server.c 注册 setCommand 命令开始追起,代码设计关键流程如下 当追到 dictAddRaw 函数的时候,我们可以清晰的看出来,当 redis 加入数据的时候

    31410编辑于 2023-09-01
  • 来自专栏Linyb极客之路

    浅谈代码结构的设计

    2 自底向上的设计结果,一定是最后的整合有问题 所以优秀的设计一定是从整体到局部设计出来的。从局部构造整体,不可能得到优秀的设计。 从此,感觉有点关系的都要进行继承,觉得这样能节省好多代码。 这样的代码有三个优势 1、代码不需要子类中重复实现 2、子类不想要的东西,可以无感知实现 3、子类运行的行为,可以委托给behavior实现,子类本省本身无需任何改动 四:对于接口和类的再次理解 在刚刚接触面向对象的时候 图四 变化本身进行封装 2,从共性和可变性到抽象类 在一类实现中,我们其实可以分析发现,代码的实现上是有一些共性的,比如说处理的流程(如何调用一些方法的顺序),也有一些完全一致的操作(比如上文提到的car 图五,共性和抽象类 总结: 代码看多了,写多了,便会发现,看起来舒服的代码,在可维护性,可读性,可扩展性上相对来说都比较高。代码界也有“颜值即战斗力”这一说法,颇有一番玄学的味道。

    74020发布于 2018-12-05
领券