小编bry*_*410的帖子

如何在scrapy spider中传递用户定义的参数

我试图将用户定义的参数传递给scrapy的蜘蛛.任何人都可以建议如何做到这一点?

我在-a某处读到了一个参数,但不知道如何使用它.

python web-crawler scrapy

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

如何向 PyTorch 张量添加新维度?

在 NumPy 中,我会做

a = np.zeros((4, 5, 6))
a = a[:, :, np.newaxis, :]
assert a.shape == (4, 5, 1, 6)
Run Code Online (Sandbox Code Playgroud)

如何在 PyTorch 中做同样的事情?

python pytorch

43
推荐指数
3
解决办法
7万
查看次数

Tensorflow 数据集预取和缓存选项的正确用法是什么?

我已经阅读了 TF 页面和一些关于使用 prefetch() 和 cache() 来加速模型输入管道的帖子,并尝试在我的数据上实现它。Cache() 按预期为我工作,即在第一个纪元中从 dist 读取数据,在所有后续纪元中它只是从内存中读取数据。但我在使用 prefetch() 时遇到很多困难,我真的不明白何时以及如何使用它。有人可以帮我吗?我真的需要一些帮助。我的应用程序是这样的:我有一组大型 TFRecord 文件,每个文件都包含一些在馈送到我的网络之前要处理的原始记录。它们将被混合(不同的样本流),所以我要做的是:

def read_datasets(pattern, numFiles, numEpochs=125, batchSize=1024, take=dataLength):

    files = tf.data.Dataset.list_files(pattern)

    def _parse(x):
        x = tf.data.TFRecordDataset(x, compression_type='GZIP')
    return x

    np = 4 # half of the number of CPU cores
    dataset = files.interleave(_parse, cycle_length=numFiles, block_length=1, num_parallel_calls=np)\
    .map(lambda x: parse_tfrecord(x), num_parallel_calls=np)
    dataset = dataset.take(take)
    dataset = dataset.batch(batchSize)
    dataset = dataset.cache()
    dataset = dataset.prefetch(buffer_size=10)
    dataset = dataset.repeat(numEpochs)
    return dataset
Run Code Online (Sandbox Code Playgroud)

interleave 函数中的 parse_tfrecord(x) 函数是数据应用于模型之前所需的预处理,我的猜测是预处理时间与网络的批处理时间相当。我的整个数据集(包括所有输入文件)包含大约 500 批 1024 个样本。我的问题是:

1-如果我进行缓存,我真的需要预取吗?

2- 映射、批处理、缓存、预取和重复的顺序是否正确? …

python tensorflow tensorflow-datasets

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

SpaCy:如何加载Google新闻word2vec向量?

我尝试了几种加载google news word2vec向量的方法(https://code.google.com/archive/p/word2vec/):

en_nlp = spacy.load('en',vector=False)
en_nlp.vocab.load_vectors_from_bin_loc('GoogleNews-vectors-negative300.bin')
Run Code Online (Sandbox Code Playgroud)

以上给出:

MemoryError: Error assigning 18446744072820359357 bytes
Run Code Online (Sandbox Code Playgroud)

我也试过.gz打包向量; 或者使用gensim将它们加载并保存为新格式:

from gensim.models.word2vec import Word2Vec
model = Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
model.save_word2vec_format('googlenews2.txt')
Run Code Online (Sandbox Code Playgroud)

然后,该文件包含每行上的单词及其单词向量.我试着加载它们:

en_nlp.vocab.load_vectors('googlenews2.txt')
Run Code Online (Sandbox Code Playgroud)

但它返回"0".

这样做的正确方法是什么?

更新:

我可以将自己创建的文件加载到spacy中.我在每一行使用带有"string 0.0 0.0 ...."的test.txt文件.然后使用.bzip2将此txt压缩到test.txt.bz2.然后我创建一个spacy兼容的二进制文件:

spacy.vocab.write_binary_vectors('test.txt.bz2', 'test.bin')
Run Code Online (Sandbox Code Playgroud)

我可以加载到spacy:

nlp.vocab.load_vectors_from_bin_loc('test.bin')
Run Code Online (Sandbox Code Playgroud)

这有效!但是,当我为googlenews2.txt执行相同的过程时,我收到以下错误:

lib/python3.6/site-packages/spacy/cfile.pyx in spacy.cfile.CFile.read_into (spacy/cfile.cpp:1279)()

OSError: 
Run Code Online (Sandbox Code Playgroud)

python nlp word2vec spacy

19
推荐指数
2
解决办法
9117
查看次数

如何在Android Support Library v24.0.0中以编程方式设置AppBarLayout的高程?

从Android支持库v23.4.0升级到v24.0.0时,以编程方式将高程设置为0,AppBarLayout停止工作:

appBayLayout.setElevation(0);
Run Code Online (Sandbox Code Playgroud)

在XML中设置高程时它确实有效.

android android-support-library android-support-design

18
推荐指数
2
解决办法
4759
查看次数

如何在Kotlin中进行换行(续行)

我有一长串代码,我希望在多行之间分解.我使用什么,语法是什么?

例如,添加一串字符串:

val text = "This " + "is " + "a " + "long " + "long " + "line"
Run Code Online (Sandbox Code Playgroud)

syntax line-breaks long-lines kotlin

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

如何从 PyTorch 模型中获取特定层的输出?

如何从预先训练的 PyTorch 模型(例如 ResNet 或 VGG)中提取特定层的特征,而无需再次进行前向传递?

python pytorch

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

使用 T5 的句子嵌入

我想使用最先进的 LM T5 来获取句子嵌入向量。我找到了这个存储库https://github.com/UKPLab/sentence-transformers 据我所知,在 BERT 中我应该将第一个标记作为 [CLS] 标记,它将是句子嵌入。在此存储库中,我在 T5 模型上看到相同的行为:

cls_tokens = output_tokens[:, 0, :]  # CLS token is first token
Run Code Online (Sandbox Code Playgroud)

这种行为正确吗?我从 T5 中获取了编码器并用它编码了两个短语:

"I live in the kindergarden"
"Yes, I live in the kindergarden"
Run Code Online (Sandbox Code Playgroud)

它们之间的余弦相似度仅为“0.2420”。

我只需要了解句子嵌入是如何工作的——我应该训练网络来寻找相似性以获得正确的结果吗?或者我的基础预训练语言模型就足够了?

python nlp word-embedding pytorch

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

NetworkOnMainThreadException with retrofit-beta2和rxjava

我最近从retroft-beta1升级,这是有效的.我有以下API接口:

public interface Service {
    @POST("path")
    Observable<Object> service();
}
Run Code Online (Sandbox Code Playgroud)

以下电话:

service.service()
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe();
Run Code Online (Sandbox Code Playgroud)

它会抛出NetworkOnMainThreadException.但这是在改造beta1.

android rx-java retrofit

3
推荐指数
1
解决办法
819
查看次数