人工智能(AI)是计算机科学的一个分支1,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。
图灵测试2是人工智能哲学方面第一个严肃的提案。1956年,在达特茅斯会议上3,约翰·麦卡锡首次提出了"人工智能"这一术语。
近年来,深度学习4技术在图像识别、自然语言处理等领域取得了突破性进展。许多科技公司都在积极布局AI领域5。
-
AAAAA
-
BBBBB
-
BBBBB
本系列围绕 CSS 展开,谈一些有趣的话题,内容天马行空,想到什么说什么,不仅是为了拓宽解决问题的思路,更涉及一些容易忽视或是十分有趣的 CSS 细节。
持续更新中,觉得不错的可以点个 star 订阅收藏。
所有文章都在 Issues 中,同步更新到我的个人博客,也可以点击下面链接进行跳转。
本 CSS 系列同步更新在我的博客:
123
如何实现下列这种多列均匀布局:
看看下图,常见于一些导航栏中,要求每行中最后一列的右边框消失,如何在所有浏览器中最便捷最优雅的实现?
不用 Javascript,使用纯 CSS 方案,实现类似下图的导航栏 Tab 切换:
规定下面的布局,实现多列等高布局,要求两列背景色等高。
<div class="container">
<div class="left">多列等高布局左</div>
<div class="right">多列等高布局右</div>
</div>10、巧妙的实现 CSS 斜线
使用单个标签,如何实现下图所示的斜线效果:
12、结构性伪类选择器
如何实现下述的背景色渐变动画?
col
| 产品 | 是否支持 |
|---|---|
| 昇腾910_95 AI处理器 | × |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
| Atlas 200/300/500 推理产品 | × |
- 算子功能:根据indices从weight中获得一组被聚合的数,然后根据offsets的偏移和mode指定的聚合模式对获取的数进行max、sum、mean聚合。其余参数则更细化了计算过程的控制。
- shape推导方式如下:
假设:
weight的shape为(numWeight, embeddingDim) indices的shape为(indices) offsets的shape为(offsets)- 当mode为sum模式:
y的shape 为 include_last_offset ? (offsets - 1, embeddingDim) : (offsets, embeddingDim) offset2bag的shape 为 (indices,) bag_size的shape 为 include_last_offset ? (offsets - 1) : (offsets,) max_indices的shape 为 include_last_offset ? (offsets - 1) : (offsets,) - 当mode为mean模式:
y的shape 为 include_last_offset? (offsets - 1, embeddingDim) : (offsets, embeddingDim) offset2bag的shape 为 (indices,) bag_size的shape 为 include_last_offset ? (offsets - 1) : (offsets,) max_indices的shape 为 include_last_offset ? (offsets - 1) : (offsets,) - 当mode为max模式:
y的shape 为 include_last_offset ? (offsets - 1, embeddingDim) : (offsets, embeddingDim) offset2bag的shape 为 (indices,) bag_size的shape 为 include_last_offset ? (offsets - 1) : (offsets,) max_indices的shape 为 include_last_offset ? (offsets - 1, embeddingDim) : (offsets, embeddingDim)
- 当mode为sum模式:
- shape推导方式如下:
假设:
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| weight | 输入 | 词嵌入矩阵,包含所有词的嵌入向量。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| indices | 输入 | 包含索引的张量,指定要从weight中提取哪些词的嵌入向量。 | INT32、INT64 | ND |
| offsets | 可选输入 | 用于将indices分割成多个bag的偏移量张量。 | INT32、INT64 | ND |
| per_sample_weights | 可选输入 | 指定样本权重。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| y | 输出 | 词嵌入矩阵聚合后的结果。 | INT32、INT64 | ND |
| offset2bag | 输出 | bag的起始偏移。 | INT32、INT64 | ND |
| bag_size | 输出 | 每个bag的大小。 | INT32、INT64 | ND |
| max_indices | 输出 | 当mode为max时,词嵌入向量最大值所在的行。 | INT32、INT64 | ND |
| mode | 可选属性 |
|
String | - |
| scale_grad_by_freq | 可选属性 |
|
Bool | - |
| sparse | 可选属性 |
|
Bool | - |
| include_last_offset | 可选属性 |
|
Bool | - |
| padding_idx | 可选属性 |
|
Int | - |
- Atlas 训练系列产品:不支持BFLOAT16。
无
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_embedding_bag | 通过aclnnEmbeddingBag接口方式调用EmbeddingBag算子。 |
| 图模式调用 | test_geir_embedding_bag | 通过算子IR构图方式调用EmbeddingBag算子。 |
| 操作 | 耗时 |
|---|---|
| Scatter | |
| Gather | |
| Broadcast | |
| Reduce | $ (p-1)(\alpha+n\beta + n\gamma)=(p-1)\alpha+ (p-1)n\beta +(p-1)n\gamma$ |
| ReduceScatter | $ (p-1)(\alpha+\frac{n}{p}\beta+\frac{n}{p}\gamma)=(p-1)\alpha+\frac{p-1}{p}n\beta+\frac{p-1}{p}n\gamma $ |
| AllGather | $ (p-1)(\alpha+\frac{n}{p}\beta)=(p-1)\alpha+\frac{p-1}{p}n\beta $ |
| AllReduce | 实现为ReduceScatter + Allgather: $ 2(p-1)\alpha+2\frac{p-1}{p}n\beta+\frac{p-1}{p}n\gamma $ |







