标签: embedding

将嵌入式 Python 异常传播到 C++

如果我有带有嵌入式 Python 函数的 C++ 代码,它使用 Python 的 C API 来调用 Python 的解释器,我怎样才能让 Python 异常冒泡到 C++ 级别?


注意:不是相反的问题(关于将 C++ 扩展异常传播到 Python 解释器)。

c++ python exception-handling embedding

5
推荐指数
1
解决办法
1351
查看次数

Keras:如何合并密集层和嵌入层

我使用 Keras 并尝试将两个不同的层连接成一个向量(向量的第一个值是第一层的值,另一部分是第二层的值)。其中一层是密集层,另一层是嵌入层。

我知道如何合并两个嵌入层或两个密集层,但我不知道如何合并一个嵌入层和一个密集层(维度问题)。

一个简单的例子是这样的:

L_branch = Sequential()
L_branch.add(Dense(10, input_shape =  (4,) , activation = 'relu'))
L_branch.add(BatchNormalization())

R_branch = Sequential()
R_branch.add(Embedding(1000, 64, input_length=5))

final_branch.add(Merge([L_branch, R_branch], mode = 'concat'))
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为您无法合并具有不同维度的图层。

PS:对不起,英语不是我的母语,我希望你能理解我的问题。

此致。

merge embedding layer theano keras

5
推荐指数
1
解决办法
3938
查看次数

keras 中的多个嵌入层

使用预训练嵌入,我们可以将它们指定为 keras 嵌入层中的权重。要使用多个嵌入,指定多个嵌入层是否合适?IE

embedding_layer1 = Embedding(len(word_index) + 1,
                        EMBEDDING_DIM,
                        weights=[embedding_matrix_1],
                        input_length=MAX_SEQUENCE_LENGTH,
                        trainable=False)

 embedding_layer2 = Embedding(len(word_index) + 1,
                        EMBEDDING_DIM,
                        weights=[embedding_matrix_2],
                        input_length=MAX_SEQUENCE_LENGTH,
                        trainable=False)

 model.add(embedding_layer1)
 model.add(embedding_layer2)
Run Code Online (Sandbox Code Playgroud)

建议将它们总结起来并将它们表示为一个层,这不是我所追求的。

embedding keras tensorflow word-embedding

5
推荐指数
1
解决办法
4438
查看次数

Keras 层级联

我正在尝试了解如何在 Keras 中创建具有多个嵌入层和其他输入的模型。这是我的模型的结构方式(E=嵌入层,[....]=输入层):

E   E [V V V]
\   |  /
 \  | /
  Dense
    |
  Dense
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我的代码:

model_a = Sequential()
model_a.add(Embedding(...))

model_b = Sequential()
model_b.add(Embedding(...))

model_c = Sequential()
model_c.add(Embedding(...))

model_values = Sequential()
model_values.add(Input(...))

classification_model = Sequential()
classification_layers = [
    Concatenate([model_a,model_b,model_c, model_values]),
    Dense(...),
    Dense(...),
    Dense(2, activation='softmax')
]
for layer in classification_layers:
    classification_model.add(layer)

classification_model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
classification_model.fit(train_data,one_hot_labels, epochs=1, validation_split=0.2)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

ValueError: A `Concatenate` layer should be called on a list of at least 2 inputs
Run Code Online (Sandbox Code Playgroud)

我不知道我在这里做错了什么。这是错误日志的更多细节:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

embedding neural-network keras tensorflow keras-layer

5
推荐指数
1
解决办法
5018
查看次数

在不使用嵌入的情况下在 keras 中屏蔽 LSTM 中的零输入

我正在 Keras 中训练 LSTM:

iclf = Sequential()
iclf.add(Bidirectional(LSTM(units=10, return_sequences=True, recurrent_dropout=0.3), input_shape=(None,2048)))
iclf.add(TimeDistributed(Dense(1, activation='sigmoid')))
Run Code Online (Sandbox Code Playgroud)

每个单元格的输入是一个 2048 向量,它是已知的,不需要学习(如果你愿意,它们是输入句子中单词的 ELMo 嵌入)。因此,这里我没有Embedding层。

由于输入序列具有可变长度,因此使用pad_sequences以下方法填充它们:

X = pad_sequences(sequences=X, padding='post', truncating='post', value=0.0, dtype='float32')
Run Code Online (Sandbox Code Playgroud)

现在,我想告诉 LSTM 忽略这些填充元素。官方的方法是使用 Embedding 层与mask_zero=True. 但是,这里没有嵌入层。如何通知 LSTM 屏蔽零元素?

embedding lstm keras

5
推荐指数
1
解决办法
1537
查看次数

如何在 tensorflow 2.0 RNN 中使用预训练的嵌入矩阵作为嵌入层的初始权重?

我想使用预训练的 GloVe 嵌入作为 RNN 编码器/解码器中嵌入层的初始权重。代码在 Tensorflow 2.0 中。简单地将嵌入矩阵作为 weights = [embedding_matrix] 参数添加到 tf.keras.layers.Embedding 层不会这样做,因为编码器是一个对象,我现在不确定在训练时间。

我的代码严格遵循Tensorflow 2.0 文档中神经机器翻译示例。在此示例中,我将如何向编码器添加预先训练的嵌入矩阵?编码器是一个对象。当我开始训练时,GloVe 嵌入矩阵对 Tensorflow 图不可用。我收到错误消息:

运行时错误:无法在 Tensorflow 图形函数中获取值。

代码在训练过程中使用了 GradientTape 方法和教师强制。

我尝试修改编码器对象以在各个点包含 embedding_matrix,包括在编码器的init、 call 和 initialize_hidden_​​state 中。所有这些都失败了。stackoverflow 和其他地方的其他问题是针对 Keras 或更旧版本的 Tensorflow,而不是 Tensorflow 2.0。

class Encoder(tf.keras.Model):
    def __init__(self, vocab_size, embedding_dim, enc_units, batch_sz):
        super(Encoder, self).__init__()
        self.batch_sz = batch_sz
        self.enc_units = enc_units
        self.embedding = tf.keras.layers.Embedding(vocab_size, embedding_dim, weights=[embedding_matrix])
        self.gru = tf.keras.layers.GRU(self.enc_units,
                                       return_sequences=True,
                                       return_state=True,
                                       recurrent_initializer='glorot_uniform')

    def call(self, x, hidden):
        x = self.embedding(x)
        output, state …
Run Code Online (Sandbox Code Playgroud)

nlp embedding tensorflow recurrent-neural-network glove

5
推荐指数
2
解决办法
5316
查看次数

如何用XLNet做句子相似度?

我想执行句子相似度任务并尝试了以下操作:

from transformers import XLNetTokenizer, XLNetModel
import torch
import scipy
import torch.nn as nn
import torch.nn.functional as F

tokenizer = XLNetTokenizer.from_pretrained('xlnet-large-cased')
model = XLNetModel.from_pretrained('xlnet-large-cased')

input_ids = torch.tensor(tokenizer.encode("Hello, my animal is cute", add_special_tokens=False)).unsqueeze(0)
outputs = model(input_ids)
last_hidden_states = outputs[0]

input_ids = torch.tensor(tokenizer.encode("I like your cat", add_special_tokens=False)).unsqueeze(0) 

outputs1 = model(input_ids)
last_hidden_states1 = outputs1[0]

cos = nn.CosineSimilarity(dim=1, eps=1e-6)
output = cos(last_hidden_states, last_hidden_states1)
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

RuntimeError: The size of tensor a (7) must match the size of tensor b (4) at non-singleton dimension 1
Run Code Online (Sandbox Code Playgroud)

谁能告诉我,我做错了什么?有更好的方法吗?

python nlp embedding transformer-model cosine-similarity

5
推荐指数
1
解决办法
1328
查看次数

如何对 NetworkX 中创建的图 g 进行聚类?

我正在尝试将聚类应用于数据集。在此之前,我必须将图划分为 n 个簇,但我不知道该怎么做。

python cluster-analysis embedding networkx

5
推荐指数
1
解决办法
1万
查看次数

将 fasttext 向量合并到 tf.keras 嵌入层中?

Fasttext 可以轻松处理 OOV,即可以假设emb = fasttext_model(raw_input)始终成立。但是,我不确定如何将这一层构建到tf.keras嵌入中。我无法简单地将矩阵加载到其中,Embedding因为这样就无法处理 OOV。是否有我可以fasttext_modeltf.keras模型中使用的解决方法?

embedding keras tensorflow fasttext tensorflow2.0

5
推荐指数
0
解决办法
668
查看次数

我可以将 GraphQL 模式嵌入到 Pinecone 这样的矢量数据库中,并让 LLM 生成查询/突变吗?

我正在尝试一个新的用户界面,其中典型的个人资料设置是通过聊天而不是用户界面来更新的。例如,用户可以直接与机器人聊天,而不是显示前端组件来让用户取消计费。

我想知道是否有可能让我的 LLM(比如说 gpt3)生成运行这些操作所需的 graphql 查询。我想我可以将我的 graphql 模式提取到像 Pinecone 这样的矢量数据库中,然后将该上下文输入到 LLM 中,以便它可以生成适当的 GQL 查询/突变。

这是可行的还是坏主意?

到目前为止我只对此进行了理论分析

embedding graphql openai-api

5
推荐指数
1
解决办法
595
查看次数