小编Mig*_*uel的帖子

BertModel 变压器输出字符串而不是张量

我正在关注这个使用 BERT 和Huggingface编写情感分析分类器的教程,我有一个非常奇怪的行为。当使用示例文本尝试 BERT 模型时,我得到一个字符串而不是隐藏状态。这是我正在使用的代码:

import transformers
from transformers import BertModel, BertTokenizer

print(transformers.__version__)

PRE_TRAINED_MODEL_NAME = 'bert-base-cased'
PATH_OF_CACHE = "/home/mwon/data-mwon/paperChega/src_classificador/data/hugingface"

tokenizer = BertTokenizer.from_pretrained(PRE_TRAINED_MODEL_NAME,cache_dir = PATH_OF_CACHE)

sample_txt = 'When was I last outside? I am stuck at home for 2 weeks.'

encoding_sample = tokenizer.encode_plus(
  sample_txt,
  max_length=32,
  add_special_tokens=True, # Add '[CLS]' and '[SEP]'
  return_token_type_ids=False,
  padding=True,
  truncation = True,
  return_attention_mask=True,
  return_tensors='pt',  # Return PyTorch tensors
)

bert_model = BertModel.from_pretrained(PRE_TRAINED_MODEL_NAME,cache_dir = PATH_OF_CACHE)


last_hidden_state, pooled_output = bert_model(
  encoding_sample['input_ids'],
  encoding_sample['attention_mask']
) …
Run Code Online (Sandbox Code Playgroud)

bert-language-model huggingface-transformers huggingface-tokenizers

8
推荐指数
2
解决办法
2133
查看次数

Keras中间层输出

我正在尝试使用Keras的功能API时获得中间层输出.我可以在使用标准的Sequential API时获得输出,但不能使用功能API.

我正在研究这个有用的玩具示例:

from keras.models import Sequential
from keras.layers import Input, Dense,TimeDistributed
from keras.models import Model
from keras.layers import Dense, LSTM, Bidirectional,Masking

inputs = [[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],[[1,2,3],[4,5,6],[7,8,9],[10,11,12]],[[10,20,30],[40,50,60],[70,80,90],[100,110,120]]]

model = Sequential()
model.add(Masking(mask_value=0., input_shape = (4,3)))
model.add(Bidirectional(LSTM(3,return_sequences = True),merge_mode='concat'))
model.add(TimeDistributed(Dense(3,activation = 'softmax')))


print "First layer:"
intermediate_layer_model = Model(input=model.input,output=model.layers[0].output)
print intermediate_layer_model.predict(inputs)
print ""
print "Second layer:"
intermediate_layer_model = Model(input=model.input,output=model.layers[1].output)
print intermediate_layer_model.predict(inputs)
print ""
print "Third layer:"
intermediate_layer_model = Model(input=model.input,output=model.layers[2].output)
print intermediate_layer_model.predict(inputs)
Run Code Online (Sandbox Code Playgroud)

但是如果我使用功能API,它就不起作用.输出不正确.例如,它在第二层输出初始输入:

inputs_ = Input(shape=(4,3))
x = Masking(mask_value=0., input_shape = (4,3))(inputs_)
x = Bidirectional(LSTM(3,return_sequences = …
Run Code Online (Sandbox Code Playgroud)

python neural-network deep-learning keras keras-layer

7
推荐指数
1
解决办法
1920
查看次数

JSON:每行保存一个字典

如何将python字典列表保存到文件中,每个字典dict将保存在一行中?我知道我可以json.dump用来保存字典列表。但是我只能将列表以紧凑形式保存(一行中的完整列表)或缩进形式,其中为所有字典键添加一个换行符。

编辑:

我希望我的最终json文件如下所示:

[{key1:value,key2:value},
{key1:value,key2:value},
...
{key1:value,key2:value}]
Run Code Online (Sandbox Code Playgroud)

python json

7
推荐指数
2
解决办法
6537
查看次数

阅读json图表networkx文件

我正在使用这个简单的python函数编写一个networkx图:

from networkx.readwrite import json_graph
def save_json(filename,graph):
    g = graph
    g_json = json_graph.node_link_data(g)
    json.dump(g_json,open(filename,'w'),indent=2)
Run Code Online (Sandbox Code Playgroud)

并试图使用以下方式加载图表:

def read_json_file(filename):
    graph = json_graph.loads(open(filename))
    return graph
Run Code Online (Sandbox Code Playgroud)

从这里读取函数的位置:

http://nullege.com/codes/search/networkx.readwrite.json_graph.load

我的问题是给我错误:

AttributeError:'module'对象没有属性'load'

这是有道理的,因为显然从Networkx文档中没有加载方法:

https://networkx.github.io/documentation/latest/reference/readwrite.json_graph.html#module-networkx.readwrite.json_graph

所以,我的问题是如何加载包含networkx图的json文件?

python json networkx

6
推荐指数
1
解决办法
5176
查看次数

圆环图python

所以我使用这段代码用 python 创建了一个甜甜圈图(灵感来自这个甜甜圈图配方):

def make_pie(sizes, text,colors,labels):
    import matplotlib.pyplot as plt
    import numpy as np

    col = [[i/255. for i in c] for c in colors]

    fig, ax = plt.subplots()
    ax.axis('equal')
    width = 0.35
    kwargs = dict(colors=col, startangle=180)
    outside, _ = ax.pie(sizes, radius=1, pctdistance=1-width/2,labels=labels,**kwargs)
    plt.setp( outside, width=width, edgecolor='white')

    kwargs = dict(size=20, fontweight='bold', va='center')
    ax.text(0, 0, text, ha='center', **kwargs)
    plt.show()

c1 = (226,33,7)
c2 = (60,121,189)

make_pie([257,90], "Gender (AR)",[c1,c2],['M','F'])
Run Code Online (Sandbox Code Playgroud)

这导致:

在此处输入图片说明

我的问题是现在我想要相应的百分比。为此,我只是添加了论点:

autopct='%1.1f%%'
Run Code Online (Sandbox Code Playgroud)

像这样:

kwargs = dict(colors=col, startangle=180,autopct='%1.1f%%')
Run Code Online (Sandbox Code Playgroud)

但这会导致以下错误:

Traceback (most …
Run Code Online (Sandbox Code Playgroud)

python matplotlib pie-chart

6
推荐指数
1
解决办法
5659
查看次数

在python中列出稀疏矩阵中的非零元素

如何以简单的一行代码(并且快速!)列出 a 的所有非零元素csr_matrix

我正在使用这段代码:

edges_list = list([tuple(row) for row in np.transpose(A.nonzero())])
weight_list = [A[e] for e in edges_list]
Run Code Online (Sandbox Code Playgroud)

但执行起来需要相当长的时间。

python sparse-matrix

6
推荐指数
2
解决办法
9256
查看次数

无法让Stanford POS tagger在nltk中运行

我正在努力与NLTK内的Stanford POS标签一起工作.我正在使用此处显示的示例:

http://www.nltk.org/api/nltk.tag.html#module-nltk.tag.stanford

我能够顺利加载一切:

>>> import os
>>> from nltk.tag import StanfordPOSTagger
>>> os.environ['STANFORD_MODELS'] = '/path/to/stanford/folder/models')

>>> st = StanfordPOSTagger('english-bidirectional-distsim.tagger',path_to_jar='/path/to/stanford/folder/stanford-postagger.jar')
Run Code Online (Sandbox Code Playgroud)

但在第一次执行时:

>>> st.tag('What is the airspeed of an unladen swallow ?'.split())
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

Loading default properties from tagger /path/to/stanford/folder/models/english-bidirectional-distsim.tagger
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at edu.stanford.nlp.io.IOUtils.<clinit>(IOUtils.java:41)
    at edu.stanford.nlp.tagger.maxent.TaggerConfig.<init>(TaggerConfig.java:146)
    at edu.stanford.nlp.tagger.maxent.TaggerConfig.<init>(TaggerConfig.java:128)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.main(MaxentTagger.java:1836)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 4 more

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/miguelwon/anaconda/lib/python2.7/site-packages/nltk/tag/stanford.py", …
Run Code Online (Sandbox Code Playgroud)

python nltk pos-tagger stanford-nlp

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

Keras 自定义层 2D 输入 -&gt; 2D 输出

我有一个 2D 输入(如果考虑样本数量,则为 3D),我想应用一个 keras 层来获取此输入并输出另一个 2D 矩阵。因此,例如,如果我有一个大小为 (ExV) 的输入,则学习权重矩阵将为 (SxE) 和输出 (SxV)。我可以用密集层做到这一点吗?

编辑(纳西姆请求):

第一层什么也不做。只是向 Lambda 层提供输入:

from keras.models import Sequential
from keras.layers.core import Reshape,Lambda
from keras import backend as K
from keras.models import Model

input_sample = [
[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20]]
,[[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35],[36,37,38,39,40]]
,[[41,42,43,44,45],[46,47,48,49,50],[51,52,53,54,55],[56,57,58,59,60]]
]


model = Sequential()
model.add(Reshape((4,5), input_shape=(4,5)))
model.add(Lambda(lambda x: K.transpose(x)))
intermediate_layer_model = Model(input=model.input,output=model.layers[0].output)
print "First layer:"
print intermediate_layer_model.predict(input_sample)
print ""
print "Second layer:"
intermediate_layer_model = Model(input=model.input,output=model.layers[1].output)
print intermediate_layer_model.predict(input_sample)
Run Code Online (Sandbox Code Playgroud)

machine-learning neural-network keras keras-layer

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

如何将正在运行的进程移动到后台(UNIX)

我有一个终端通过ssh连接到外部机器,并在其中运行一个进程.是否有可能将执行移至后台,以便我可以关闭ssh连接而无需杀死它?如果是这样的话?

unix ssh terminal

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

无法安装 Chromium depot_tools

我正在尝试在 Raspberry Pi 中安装 Chromium depot 工具,但我什么也做不了fetch。从我的教程来看:

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

export PATH=/path/to/depot_tools:$PATH
Run Code Online (Sandbox Code Playgroud)

然后我尝试执行一个简单的帮助命令:fetch --helpcommand。它给出了错误:

pi@raspberrypi:~/experiments/build-webrtc/depot_tools $ fetch --help
Errors:
  failed to resolve infra/3pp/tools/git/linux-armv6l@version:2.24.1.chromium.5 (line 27): no such package
  failed to resolve infra/3pp/tools/cpython/linux-armv6l@version:2.7.17.chromium.22 (line 21): no such package
  failed to resolve infra/3pp/tools/cpython3/linux-armv6l@version:3.8.0.chromium.8 (line 24): no such package
/home/pi/experiments/build-webrtc/depot_tools/bootstrap_python3: line 32: bootstrap-3.8.0.chromium.8_bin/python3/bin/python3: No such file or directory
cat: /home/pi/experiments/build-webrtc/depot_tools/python3_bin_reldir.txt: No such file or directory
[E2020-05-01T13:00:13.414783+01:00 20120 0 annotate.go:241] original error: fork/exec /home/pi/experiments/build-webrtc/depot_tools/python3: no such file or …
Run Code Online (Sandbox Code Playgroud)

chromium google-chrome-devtools

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