我正在关注这个使用 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
我正在尝试使用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字典列表保存到文件中,每个字典dict
将保存在一行中?我知道我可以json.dump
用来保存字典列表。但是我只能将列表以紧凑形式保存(一行中的完整列表)或缩进形式,其中为所有字典键添加一个换行符。
编辑:
我希望我的最终json文件如下所示:
[{key1:value,key2:value},
{key1:value,key2:value},
...
{key1:value,key2:value}]
Run Code Online (Sandbox Code Playgroud) 我正在使用这个简单的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文档中没有加载方法:
所以,我的问题是如何加载包含networkx图的json文件?
所以我使用这段代码用 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) 如何以简单的一行代码(并且快速!)列出 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)
但执行起来需要相当长的时间。
我正在努力与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) 我有一个 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) 我有一个终端通过ssh连接到外部机器,并在其中运行一个进程.是否有可能将执行移至后台,以便我可以关闭ssh连接而无需杀死它?如果是这样的话?
我正在尝试在 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 --help
command。它给出了错误:
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) python ×6
json ×2
keras ×2
keras-layer ×2
chromium ×1
matplotlib ×1
networkx ×1
nltk ×1
pie-chart ×1
pos-tagger ×1
ssh ×1
stanford-nlp ×1
terminal ×1
unix ×1