标签: transformer-model

我可以使用转换器来转换来自API而不是来自数据库的数据吗? - Laravel/Fractal

我一直在使用laravel来构建我的API.我使用变换器来转换模型对象的数据.

现在我没有数据库,而是来自API的响应作为数据源,我想将这些数据转换回用户,但我无法这样做.

我的控制器

 public function rocByName(Request $request)
    {
        try {
            $this->roc_by_name_validator->with( $request->all() )->passesOrFail();
            $company_name = $request->input('company_name');
            $result = $this->my_service->getDetailsByName($company_name); //$result has the response object from the API which I want to transform and give it as a response.

             return $this->response->collection($result,new OnboardingTransformer()); //Tried using tranformer like this
        }
        catch (ValidatorException $e) {

            dd($e);

        }

    }
Run Code Online (Sandbox Code Playgroud)

我的变形金刚

<?php

namespace Modules\Onboarding\Transformers;

use League\Fractal\TransformerAbstract;
use App\Entities\OnboardingEntity;  //I dont have an entity since the response is coming from an API!! What will give here?

/** …
Run Code Online (Sandbox Code Playgroud)

php transformer-model laravel dingo-api thephpleague-fractal

11
推荐指数
1
解决办法
2754
查看次数

将 ColumnTransformer 用于管道时出现 AttributeError

这是我的第一个机器学习项目,也是我第一次使用 ColumnTransformer。我的目标是执行数据预处理的两个步骤,并为每个步骤使用 ColumnTransformer。

在第一步中,我想用字符串 'missing_value' 替换我的数据框中的缺失值,用于某些功能,并为其余功能替换最常见的值。因此,我使用 ColumnTransformer 将这两个操作结合起来,并将数据帧的相应列传递给它。

在第二步中,我想使用刚刚预处理的数据并根据功能应用 OrdinalEncoder 或 OneHotEncoder。为此,我再次使用 ColumnTransformer。

然后我将这两个步骤合并到一个管道中。

我正在使用 Kaggle Houses Price 数据集,我有 scikit-learn 0.20 版,这是我的代码的简化版本:

cat_columns_fill_miss = ['PoolQC', 'Alley']
cat_columns_fill_freq = ['Street', 'MSZoning', 'LandContour']
cat_columns_ord = ['Street', 'Alley', 'PoolQC']
ord_mapping = [['Pave', 'Grvl'],                          # Street
               ['missing_value', 'Pave', 'Grvl'],         # Alley
               ['missing_value', 'Fa', 'TA', 'Gd', 'Ex']  # PoolQC
]
cat_columns_onehot = ['MSZoning', 'LandContour']


imputer_cat_pipeline = ColumnTransformer([
        ('imp_miss', SimpleImputer(strategy='constant'), cat_columns_fill_miss),  # fill_value='missing_value' by default
        ('imp_freq', SimpleImputer(strategy='most_frequent'), cat_columns_fill_freq),
])

encoder_cat_pipeline = ColumnTransformer([
        ('ordinal', OrdinalEncoder(categories=ord_mapping), cat_columns_ord),
        ('pass_ord', …
Run Code Online (Sandbox Code Playgroud)

python pipeline transformer-model pandas scikit-learn

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

“自注意力机制”和“全连接”层有什么区别?

我对这两种结构感到困惑。理论上,它们的输出都与其输入相关。是什么魔力让“自注意力机制”比全连接层更强大?

transformer-model pytorch bert-language-model

11
推荐指数
1
解决办法
2281
查看次数

InvalidArgumentError:当前图形与检查点图形不匹配

所以我基本上将这个变换器实现用于我的项目:https://github.com/Kyubyong/transformer.它最初编写的德语到英语翻译效果很好,我修改了处理python脚本,以便为我想要翻译的语言创建词汇表文件.这似乎工作正常.

但是,当涉及到培训时,我收到以下错误:

InvalidArgumentError(请参阅上面的回溯):从检查点恢复失败.这很可能是由于当前图表与检查点图表不匹配造成的.请确保您没有根据检查点更改预期的图表.原始错误:

分配要求两个张量的形状匹配.lhs shape = [9796,512] rhs shape = [9786,512] [[{{node save/Assign_412}} =分配[T = DT_FLOAT,_class = ["loc:@ encoder/enc_embed/lookup_table"],use_locking = true,validate_shape = true,_device ="/ job:localhost/replica:0/task:0/device:CPU:0"](encoder/enc_embed/lookup_table/Adam_1,save/RestoreV2:412)]]

现在我不知道为什么我收到上述错误.我还恢复了原始代码,从德语翻译成英语,现在我得到了相同的错误(除了lhs和rhs张量形状当然不同),在它工作之前!

关于为什么会发生这种情况的任何想法?

提前致谢

编辑:这是有问题的特定文件在这里,train.py当它运行:https://github.com/Kyubyong/transformer/blob/master/train.py 什么也没有比一个事实,即词汇修饰等为de和en加载的是不同的(它们实际上是单个字母作为单词的词汇文件).然而,正如我所提到的那样,即使回到流行的工作示例,我也会得到与不同的lhs和rhs尺寸相同的错误.

python transformer-model tensorflow tensor

10
推荐指数
1
解决办法
1783
查看次数

MultiHeadAttention Attention_mask [Keras、Tensorflow] 示例

我正在努力掩盖 MultiHeadAttention 层的输入。我正在使用 Keras 文档中的 Transformer Block 进行自我关注。到目前为止,我在网上找不到任何示例代码,如果有人能给我一个代码片段,我将不胜感激。

本页的变压器块:

class TransformerBlock(layers.Layer):
    def __init__(self, embed_dim, num_heads, ff_dim, rate=0.1):
        super(TransformerBlock, self).__init__()
        self.att = layers.MultiHeadAttention(num_heads=num_heads, key_dim=embed_dim)
        self.ffn = keras.Sequential(
            [layers.Dense(ff_dim, activation="relu"), layers.Dense(embed_dim),]
        )
        self.layernorm1 = layers.LayerNormalization(epsilon=1e-6)
        self.layernorm2 = layers.LayerNormalization(epsilon=1e-6)
        self.dropout1 = layers.Dropout(rate)
        self.dropout2 = layers.Dropout(rate)

    def call(self, inputs, training):
        attn_output = self.att(inputs, inputs)
        attn_output = self.dropout1(attn_output, training=training)
        out1 = self.layernorm1(inputs + attn_output)
        ffn_output = self.ffn(out1)
        ffn_output = self.dropout2(ffn_output, training=training)
        return self.layernorm2(out1 + ffn_output)
Run Code Online (Sandbox Code Playgroud)

屏蔽的文档可以在链接下找到:

focus_mask:形状为 [B, T, S] 的布尔掩码,可防止对某些位置的关注。布尔掩码指定哪些查询元素可以关注哪些关键元素,1表示关注,0表示不关注。对于缺少的批次尺寸和头部尺寸,可能会发生广播。

我唯一可以运行的是在图层类外部创建的掩码作为 …

machine-learning transformer-model keras tensorflow attention-model

10
推荐指数
1
解决办法
6063
查看次数

如何防止xml转换器将空标记转换为单个标记

我正在使用javax.xml.transform.Transformer类将DOM源转换为XML字符串.我在DOM树中有一些空元素,这些元素成为我不想要的一个标记.

我该如何防止<sampletag></sampletag>成为<sampletag/>

java xml transformer-model

9
推荐指数
1
解决办法
3362
查看次数

如何在Dart中创建StreamTransformer?

尝试构建一个自定义StreamTransformer类,但是很多示例似乎已经过时了,文档中找到的那些不是(某些类型语言可能会考虑的)作为一个类(在这里找到:https ://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:async.StreamTransformer).这似乎不是一种非常像Dart的方式来接近它,而是更像是一种类似Javascript的方式(我正在使用Dart来避免).

许多在线消息来源说这是你创建StreamTransformer的方式,但扩展它时会出现错误.

class exampleStreamTransformer extends StreamTransformer
{
  //... (This won't work)
}
Run Code Online (Sandbox Code Playgroud)

"实现"似乎是要走的路,同时实现所需的绑定功能:

class exampleStreamTransformer implements StreamTransformer
{
  Stream bind(Stream stream)
  {
    //... (Go on to return new stream, etc)
  }
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到这种方式的任何示例,但我自己抛出了一些东西(在我的IDE中已被接受,但在运行时不被接受,当它尝试使用pause getter时我得到一个空对象错误):

class exampleStreamTransformer implements StreamTransformer
{
  StreamController<String> _controller;
  StreamSubscription<String> _subscription;

  Stream bind(Stream stream)
  {
    _controller = new StreamController<String>(
        onListen: ()
        {
          _subscription = stream.listen((data)
          {
            // Transform the data.
            _controller.add(data);
          },
          onError: _controller.addError,
          onDone: _controller.close,
          cancelOnError: true); // Unsure how I'd pass this in????? …
Run Code Online (Sandbox Code Playgroud)

stream transformer-model dart

9
推荐指数
4
解决办法
3123
查看次数

Transformer 培训如何实施教师强制?

在 Tensorflow 教程的这一部分中他们提到他们正在使用教师强制进行训练。据我所知,教师强制涉及将目标输出输入到模型中,以便模型更快地收敛。所以我很好奇这里是如何完成的?真正的目标是tar_real,据我所知,它仅用于计算损失和准确性。我很好奇这段代码是如何实现教师强制的?

提前致谢。

nlp machine-learning transformer-model tensorflow

9
推荐指数
1
解决办法
8283
查看次数

如何使用 BertForMaskedLM 或 BertModel 来计算句子的困惑度?

我想使用 BertForMaskedLM 或 BertModel 来计算句子的困惑度,所以我编写了这样的代码:

\n
import numpy as np\nimport torch\nimport torch.nn as nn\nfrom transformers import BertTokenizer, BertForMaskedLM\n# Load pre-trained model (weights)\nwith torch.no_grad():\n    model = BertForMaskedLM.from_pretrained(\'hfl/chinese-bert-wwm-ext\')\n    model.eval()\n    # Load pre-trained model tokenizer (vocabulary)\n    tokenizer = BertTokenizer.from_pretrained(\'hfl/chinese-bert-wwm-ext\')\n    sentence = "\xe6\x88\x91\xe4\xb8\x8d\xe4\xbc\x9a\xe5\xbf\x98\xe8\xae\xb0\xe5\x92\x8c\xe4\xbd\xa0\xe4\xb8\x80\xe8\xb5\xb7\xe5\xa5\x8b\xe6\x96\x97\xe7\x9a\x84\xe6\x97\xb6\xe5\x85\x89\xe3\x80\x82"\n    tokenize_input = tokenizer.tokenize(sentence)\n    tensor_input = torch.tensor([tokenizer.convert_tokens_to_ids(tokenize_input)])\n    sen_len = len(tokenize_input)\n    sentence_loss = 0.\n\n    for i, word in enumerate(tokenize_input):\n        # add mask to i-th character of the sentence\n        tokenize_input[i] = \'[MASK]\'\n        mask_input = torch.tensor([tokenizer.convert_tokens_to_ids(tokenize_input)])\n\n        output = model(mask_input)\n\n        prediction_scores = output[0]\n        softmax = nn.Softmax(dim=0)\n …
Run Code Online (Sandbox Code Playgroud)

nlp transformer-model pytorch bert-language-model huggingface-transformers

9
推荐指数
1
解决办法
7694
查看次数

如何使用 GPT2 模型获得直接下一个词的概率?

我正在尝试拥抱脸 gpt2 模型。我看过run_generation.py脚本,它会根据提示生成一系列令牌。我知道我们可以将 GPT2 用于 NLG。

在我的用例中,我希望(仅)确定给定提示后紧接的下一个单词的概率分布。理想情况下,这种分布将覆盖整个词汇。

例如,给定提示:“How are”,它应该给出一个概率分布,其中“you”或“they”具有一些高浮点值而其他词汇具有非常低的浮点值。

如何使用拥抱面部变压器做到这一点?如果不能拥抱脸,是否还有其他变压器模型可以做到这一点?

transformer-model huggingface-transformers

8
推荐指数
1
解决办法
1535
查看次数