megengine.module.Embedding

class Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=None, norm_type=None, initial_weight=None, freeze=False, **kwargs)[源代码]

一个简单的查询表,存储具有固定大小的词向量(embedding)于固定的词典中。

该模块通常用于存储词向量(word embeddings),并使用索引来检索。输入索引列表到模块中,则输出对应的词向量。索引值应小于num_embeddings。

参数
  • num_embeddings (int) – 词向量字典的大小。

  • embedding_dim (int) – 每个词向量的大小。

  • padding_idx (Optional[int]) – 应设置为None,目前不支持。

  • max_norm (Optional[float]) – 应设置为None,目前不支持。

  • norm_type (Optional[float]) – 应设置为None,目前不支持。

  • initial_weight (Optional[Parameter]) – 该模块的可学习权重,形状为(num_embeddings, embedding_dim) 。

实际案例

import numpy as np
import megengine as mge
import megengine.module as M
weight = mge.tensor(np.array([(1.2,2.3,3.4,4.5,5.6)], dtype=np.float32))
data = mge.tensor(np.array([(0,0)], dtype=np.int32))

embedding = M.Embedding(1, 5, initial_weight=weight)
output = embedding(data)
with np.printoptions(precision=6):
    print(output.numpy())

输出:

[[[1.2 2.3 3.4 4.5 5.6]
  [1.2 2.3 3.4 4.5 5.6]]]

方法

apply(fn)

对当前模块中的所有模块应用函数 fn,包括当前模块本身。

buffers([recursive])

返回该模块中对于buffers的一个可迭代对象。

children(**kwargs)

返回一个可迭代对象,可遍历所有属于当前模块的直接属性的子模块。

disable_quantize([value])

设置 modulequantize_diabled 属性,并返回 module

eval()

当前模块中所有模块的 training 属性(包括自身)置为 False ,并将其切换为推理模式。

forward(inputs)

from_pretrained(embeddings[, freeze, ...])

从给定的2维FloatTensor创建词向量实例。

load_state_dict(state_dict[, strict])

加载一个参数字典,这个字典通常使用 state_dict 得到。

modules(**kwargs)

返回一个可迭代对象,可以遍历当前模块中的所有模块,包括其本身。

named_buffers([prefix, recursive])

返回可遍历模块中 key 与 buffer 的键值对的可迭代对象,其中 key 为从该模块至 buffer 的点路径(dotted path)。

named_children(**kwargs)

返回可迭代对象,可以遍历属于当前模块的直接属性的所有子模块(submodule)与键(key)组成的”key-submodule”对,其中'key'是子模块对应的属性名。

named_modules([prefix])

返回可迭代对象,可以遍历当前模块包括自身在内的所有其内部模块所组成的key-module键-模块对,其中'key'是从当前模块到各子模块的点路径(dotted path)。

named_parameters([prefix, recursive])

返回一个可迭代对象,可以遍历当前模块中key与 Parameter 组成的键值对。其中 key 是从模块到 Parameter 的点路径(dotted path)。

named_tensors([prefix, recursive])

Returns an iterable for key tensor pairs of the module, where key is the dotted path from this module to the tensor.

parameters([recursive])

返回一个可迭代对象,遍历当前模块中的所有 Parameter

register_forward_hook(hook)

给模块输出注册一个回调函数。

register_forward_pre_hook(hook)

给模块输入注册一个回调函数。

replace_param(params, start_pos[, seen])

Replaces module's parameters with params, used by ParamPack to

reset_parameters()

rtype

None

state_dict([rst, prefix, keep_var])

tensors([recursive])

Returns an iterable for the Tensor of the module.

train([mode, recursive])

当前模块中所有模块的 training 属性(包括自身)置为 mode

zero_grad()

将所有参数的梯度置0。