Daisy

低功耗设计基础:Power Gating详解

非 Y 不嫁゛ 提交于 2021-02-20 12:36:05
本文原创首发于知乎专栏【数字IC后端工程师修炼之路】 在低功耗设计领域,最有效的降低功耗的手段莫过于电源关断了。 其原因在于不论多低的电压,多小的电流,多慢的速度抑或多小的leakage,都不如将电源完全关闭来的彻底。 尽管如此,在实际设计中,由于power gating设计方法会极大地增加design的复杂度,从设计到验证,从后端实现到signoff methodology都有很多不同于一般design的特点。 今天主要从逻辑构成和后端实现的角度介绍一下power gating的特点和原理。一个典型的带有power gating的设计,应该包含以下的主要module: power gating controller: 控制芯片中关断模块的电源何时关闭并给特殊的cell如retention register输出必要的使能信号; power switching fabric: 也称power switch, 实现电源关闭的逻辑单元,一般由后端实现阶段加入并按照一定设计规则摆放; always-on module: 电源一直保持打开的模块; isolation cells: 简称ISO,一般在关断模块输入到电源always-on模块方向的信号需要加入此类cell,具体作用将在后面解释; retention DFFs: 特殊的寄存器能够在主电源关断的情况下保持数据不丢失

毕业设计之「测试实验及结果分析」(二)

北城余情 提交于 2021-02-08 13:23:10
阅读本文大概需要 8 分钟。 基于AlexNet完成五种花的训练和识别 花分类数据集获取及项目简介 在本例中,我们将使用通过Python爬虫技术获取的 不具备版权 的3762张样本图片,包括5个类别:其中daisy(菊花)633张,dandelion(蒲公英)898张,roses(玫瑰)641张,sunflowers(太阳花)699张,tulips(郁金香)799张; 训练集图片共3306张,同样也是5种类别,其中daisy(菊花)570张,dandelion(蒲公英)809张,roses(玫瑰)577张,sunflowers(太阳花)630张,tulips(郁金香)720张; 测试集图片共364张,也是5种类别,其中daisy(菊花)53张,dandelion(蒲公英)89张,roses(玫瑰)64张,sunflowers(太阳花)69张,tulips(郁金香)79张; 有了数据集之后,我们将搭建AlexNet卷积神经网络,通过对图片的训练,来完成对要识别图片的判断,要注意的一点,因为此项目中样本集中图片总量较小,所以相比第一个例子,识别率可能会有所下降。 代码及最终效果展示 接下来,我们给出本案例的核心代码,即AlexNet网络模型搭建的核心代码: from TensorFlow.keras import layers, models, Model, Sequential

2021-01-01

落爺英雄遲暮 提交于 2021-01-05 10:32:28
Daisy智能合约的DiFi应用是什么 它的的优势及亮点 如果您从事各种网络项目,您可能会了解,该行业正在应对的最大挑战。特别是在被动收入机会方面,市场上有很多项目。许多项目会试图使他们的业务看起来非常合法,显示交易所账户和实时交易。但是结果很多都失败了。 最近热门的的最新项目是 Daisy 智能合约 我们都喜欢被动收入。但是我们已经失望了很多次。但是,Daisy 智能合约被保证会有所不同 ,许多网络领导人将其作为网络营销的圣杯来出售。 因此,让我们更深入地了解Daisy 智能合约 谁在Daisy 智能合约的背后? Daisy 智能合约代表 分散式AI系统 , Endotech AI 被指定为他们的第一个技术合作伙伴。官方网站为 https://endotech.io/。 Endotech AI是一家以色列公司,正在为加密货币市场开发AI和算法交易内容。首席执行官兼联合创始人是Anna Becker博士。19岁时, 她解决了 20年未解决的数学方程式。这使她获得了当地大学的教授头衔。 Endotech的创始人在市场交易已有十几年的交易历史。他们的营销口号是: 自2017年以来,Endotech的表现优于比大多数持币不动的。 他们所谓的 ΣTBot™ 正在 通过Binance,Kraken,Bitfinex和BitMEX等交易所执行 自动交易。 这是他们的交易算法可以实现的性能类型。

Shell数组:shell数组的定义、数组长度

烂漫一生 提交于 2020-12-15 09:55:44
Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。 bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。 定义数组 在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为: array_name=(value1 ... valuen) 例如: array_name=(value0 value1 value2 value3) 或者 array_name= ( value0 value1 value2 value3 ) 还可以单独定义数组的各个分量: array_name[ 0 ]= value0 array_name[ 1 ]= value1 array_name[ 2 ]=value2 可以不使用连续的下标,而且下标的范围没有限制。 读取数组 读取数组元素值的一般格式是: ${array_name[index]} 例如: valuen=${array_name[ 2 ]} 举个例子: #!/bin/ sh NAME[ 0 ]= " Zara " NAME[ 1 ]= " Qadir " NAME[ 2 ]= " Mahnaz " NAME[ 3 ]= " Ayan " NAME[ 4 ]= "

LoadRunner性能测试系统学习教程:Vuser发生器(上)

≡放荡痞女 提交于 2020-08-14 11:26:16
引言 Vuser发生器(VisualUserGenerator,简称为VuGen)主要通过捕获客户端向服务器发送的HTTP请求,将这些请求录制成脚本,在回放时将捕获的HTTP请求再次发送,以达到模拟客户的行为的目的,所以Vuser主要是用来捕获最终用户业务流程和创建自动化测试脚本,即生成测试脚本。VuGen是录制测试脚本、编辑与完善测试脚本的一个平台,支持C语言语法。 主要包括以下内容: 脚本录制 Recording Options设置 Run-Time Settings设置 脚本完善 脚本录制 启动VisualUserGenerator,创建一个新的脚本,开始录制脚本,在录制脚本过程中,VuGen会自动捕获操作过程中客户端与服务器端进行通信的所有数据。这里涉及的关键点是如何选择录制协议。 脚本开发主要包括四大步骤:计划、录制脚本、脚本增强和单机调试脚本,如图所示。 如何选择协议 在创建一个新的脚本时,首先会弹出一个对话框,在该对话框中选择录制时需要的协议,这步非常重要,选择的协议将直接影响到录制后的脚本是否理想,如何选择录制协议是录制前必须要解决的问题。 各种协议和相关头文件的对应关系如图所示。 选择协议的常用方法主要有以下几种: 1.最简单的方法就是向开发工程师确认数据通信所采用的协议,因为开发工程师最清楚应用程序采用的是何种通信协议。 2.没有开发工程师支持时

Java 8 Stream API学习总结

混江龙づ霸主 提交于 2020-08-14 07:30:15
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。 这一次为什么要系统性的总结一下 Java 8 Stream API 呢?说得简单点,我们先不论性能,我们就是为了 装x ,而且要让这个 x 装得再优秀一些,仅此而已! Stream基础知识 流程 创建流 → 流的中间操作 → 流的最终操作 创建流 我们需要把哪些元素放入流中,常见的api有: // 使用List创建流 list.stream() // 使用一个或多个元素创建流 Stream.of(T value) Stream.of(T... values) // 使用数组创建流 Arrays.stream(T[] array) // 创建一个空流 Stream.empty() // 两个流合并 Stream.concat(Stream<? extends T> a, Stream<? extends T> b) //

CP,SCP 命令(包括windows与linux用xshell互传)

帅比萌擦擦* 提交于 2020-08-06 15:31:12
linux之cp/scp命令+scp命令详解 名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... directory 说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。 p.s. ①源文件是文件时,目标地址如果是个目录,则是把源文件保持同名复制到目标目录中,    若是目录在加个文件名,则是把源文件复制到目标目录并把文件名改为新的命名   ②源文件是文件夹时,目标如果是(已存在的)文件夹目录,那么会把源文件夹复制到    目标文件夹目录下。而如果目标是不存在的目录,那么就会把源文件夹名称改名成    新命名的名称.[最终效果是,新命名的文件夹下含有的是源文件夹下的所有文件,    而不是含有的源文件夹] 【注】①和②实际上可以统一起来,即目标文件夹若存在,则复制进去,若是一个新的文件名或者新的文件夹名, 则将源文件(夹)改成新的名字复制出一个新的。   ③ 源文件是文件夹时, 如果目标目录下面已经有一个同名的文件夹,那么会把源文件夹    下的所有文件复制到已有的同名的那个文件夹下面[-i / -f分别表示若同名文件,是提示还是直接覆盖]。 选项 -a 尽可能将档案状态、权限等资料都照原状予以复制。 -r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。

Java 8 Stream API学习总结

假如想象 提交于 2020-08-05 01:47:29
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。 这一次为什么要系统性的总结一下 Java 8 Stream API 呢?说得简单点,我们先不论性能,我们就是为了 装x ,而且要让这个 x 装得再优秀一些,仅此而已! Stream基础知识 流程 创建流 → 流的中间操作 → 流的最终操作 创建流 我们需要把哪些元素放入流中,常见的api有: // 使用List创建流 list.stream() // 使用一个或多个元素创建流 Stream.of(T value) Stream.of(T... values) // 使用数组创建流 Arrays.stream(T[] array) // 创建一个空流 Stream.empty() // 两个流合并 Stream.concat(Stream<? extends T> a, Stream<? extends T> b) //

Python 异步编程再添一利器

扶醉桌前 提交于 2020-05-05 12:47:34
随着 Tornado 和 asyncio 等框架的陆续涌现,Python 异步编程这个话题也在逐渐升温。在这个烧脑的异步世界里,有没有办法可以既方便快捷、又简单明了地访问数据库呢?GitHub 千星项目 GINO 了解一下! 1. GINO 是谁 GINO 是一个“轻量级”异步 ORM 框架,它的全称是 GINO Is Not ORM,借鉴了 GNU is Not Unix 的递归定义手法。所以,GINO 一定要全!部!大!写!如果像这样“Gino”就变成了人名,你肯定要问一句“这是谁”。 ORM,即关系对象映射(Object-Relational Mapping),是一类开发人员喜闻乐见的效率工具,它们"极大地"提升了写代码的幸福指数。GINO 是用来访问数据库的,也提供了对象映射的工具,那为什么非说 GINO 不是 ORM 呢? 因为物极必反,ORM 在带来生活便利的同时,也是 bug 生长的温床 —— 传统 ORM 往往会选择牺牲明确性(explicitness)来换取便捷性(convenience),再加上 Python 得天独厚的灵活性(flexibility),创造出了一种爆炸式的化学反应。一旦代码初具规模,项目或多或少都会遇到 ORM 反噬的情景:性能莫名其妙的差、出问题找不到原因、为了鸡毛蒜皮的小事大动干戈。随便一句 current_user.name

TensorFlow2.0(10):加载自定义图片数据集到Dataset

ⅰ亾dé卋堺 提交于 2020-04-18 12:18:59
前面的博客中我们说过,在加载数据和预处理数据时使用tf.data.Dataset对象将极大将我们从建模前的数据清理工作中释放出来,那么,怎么将自定义的数据集加载为DataSet对象呢?这对很多新手来说都是一个难题,因为绝大多数案例教学都是以mnist数据集作为例子讲述如何将数据加载到Dataset中,而英文资料对这方面的介绍隐藏得有点深。本文就来捋一捋如何加载自定义的图片数据集实现图片分类,后续将继续介绍如何加载自定义的text、mongodb等数据。 如果你已有数据集,那么,请将所有数据存放在同一目录下,然后将不同类别的图片分门别类地存放在不同的子目录下,目录树如下所示: $ tree flower_photos -L 1 flower_photos ├── daisy ├── dandelion ├── LICENSE.txt ├── roses ├── sunflowers └── tulips 所有的数据都存放在flower_photos目录下,每一个子目录(daisy、dandelion等等)存放的都是一个类别的图片。如果你已有自己的数据集,那就按上面的结构来存放,如果没有,想操作学习一下,你可以通过下面代码下载上述图片数据集: In [ ]: import tensorflow as tf import pathlib data_root_orig = tf .