小编sta*_*010的帖子

为什么R在这个表达式的结果开始时会产生额外的空间?

为什么R在第一个表达式的结果开始时会产生额外的空间,但是在第二个表达式结果的开头没有这样的额外空间?我使用的是R 2.13.1.

> 20:30
 [1] 20 21 22 23 24 25 26 27 28 29 30
> 20:24
[1] 20 21 22 23 24
Run Code Online (Sandbox Code Playgroud)

r

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

Pandas:使用变量从变量名称创建具有一行名称和列名称的数据框

假设我在 Python 中有一些变量。我正在尝试创建一个 1 行的 Pandas 数据框,其中列名是变量的名称,行中的值来自变量。

例如,如果我有这个代码:

pi  = 3.142
e   = 2.718
phi = 1.618
Run Code Online (Sandbox Code Playgroud)

我想要一个概念上看起来像这样的数据框:

     pi     e      phi
0   3.142   2.718  1.618
Run Code Online (Sandbox Code Playgroud)

我尝试了以下操作,但所有内容都在一列中,并且未添加变量名称:

df = pd.DataFrame(data=[pi, e, phi])
df
#        0
# 0  3.140
# 1  2.718
# 2  1.618
Run Code Online (Sandbox Code Playgroud)

请注意,我正在尝试复制一些旧 R 代码的行为。

pi  <- 3.142
e   <- 2.718
phi <- 1.618
df  <- data.frame(pi, e, phi)
df
#      pi     e   phi
# 1 3.142 2.718 1.618
Run Code Online (Sandbox Code Playgroud)

python r dataframe pandas

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

Keras训练进度条与历元数在一行上

当我使用Keras用训练模型时model.fit(),我看到一个如下所示的进度条:

Epoch 1/10
8000/8000 [==========] - 55s 7ms/step - loss: 0.9318 - acc: 0.0783 - val_loss: 0.8631 - val_acc: 0.1180
Epoch 2/10
8000/8000 [==========] - 55s 7ms/step - loss: 0.6587 - acc: 0.1334 - val_loss: 0.7052 - val_acc: 0.1477
Epoch 3/10
8000/8000 [==========] - 54s 7ms/step - loss: 0.5701 - acc: 0.1526 - val_loss: 0.6445 - val_acc: 0.1632
Run Code Online (Sandbox Code Playgroud)

为了提高可读性,我想将历元号与进度条放在同一行,如下所示:

Epoch 1/10: 8000/8000 [==========] - 55s 7ms/step - loss: 0.9318 - acc: 0.0783 - val_loss: 0.8631 - val_acc: 0.1180 …
Run Code Online (Sandbox Code Playgroud)

python keras

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

Google Colab:没有重启和清除所有输出的选项?

我在使用 Jupyter Notebook 方面很有经验,并且正在加入 Google Colaboratory。我注意到 Colab 没有重新启动运行时和清除所有输出的选项;那是对的吗?

Jupyter Notebook 中,该选项位于Kernel--> 下Restart & Clear Output

在此处输入图片说明

但是,在Google Colab 中Runtime菜单下没有这样的选项:

在此处输入图片说明

当我点击 时Restart Runtime...,它只显示以下内容:

在此处输入图片说明

任何帮助,将不胜感激。

jupyter-notebook google-colaboratory

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

PyTorch:将词向量加载到字段词汇表与嵌入层中

我从 Keras 转到 PyTorch。我想使用 GloVe 向量创建一个 PyTorch 嵌入层(大小为 的矩阵V x D,其中V是词汇单词索引,D是嵌入向量维度),但对所需的步骤感到困惑。

在 Keras 中,您可以通过让 Embedding 层构造函数采用参数来加载 GloVe 向量weights

# Keras code.
embedding_layer = Embedding(..., weights=[embedding_matrix])
Run Code Online (Sandbox Code Playgroud)

在查看 PyTorch 和 TorchText 库时,我发现嵌入应该加载两次,一次在 a 中Field,然后在一个Embedding层中再次加载。这是我找到的示例代码:

# PyTorch code.

# Create a field for text and build a vocabulary with 'glove.6B.100d'
# pretrained embeddings.
TEXT = data.Field(tokenize = 'spacy', include_lengths = True)

TEXT.build_vocab(train_data, vectors='glove.6B.100d')


# Build …
Run Code Online (Sandbox Code Playgroud)

python machine-learning word-embedding pytorch

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

PyTorch torch.no_grad() 与 requires_grad=False

我正在学习使用 Huggingface Transformers 库中的 BERT NLP 模型(特征提取器)的PyTorch 教程。有两段我不明白的梯度更新相关代码。

(1) torch.no_grad()

本教程有一个类,其中该forward()函数torch.no_grad()围绕对 BERT 特征提取器的调用创建一个块,如下所示:

bert = BertModel.from_pretrained('bert-base-uncased')

class BERTGRUSentiment(nn.Module):
    
    def __init__(self, bert):
        super().__init__()
        self.bert = bert
        
    def forward(self, text):
        with torch.no_grad():
            embedded = self.bert(text)[0]
Run Code Online (Sandbox Code Playgroud)

(2) param.requires_grad = False

在同一教程中还有另一部分冻结了 BERT 参数。

for name, param in model.named_parameters():                
    if name.startswith('bert'):
        param.requires_grad = False
Run Code Online (Sandbox Code Playgroud)

我什么时候需要(1)和/或(2)?

  • 如果我想使用冻结的 BERT 进行训练,是否需要同时启用两者?
  • 如果我想训练让 BERT 更新,我是否需要同时禁用两者?

另外,我运行了所有四种组合,发现:

   with torch.no_grad   requires_grad = False  Parameters  Ran
   ------------------   ---------------------  ----------  ---
a. Yes                  Yes …
Run Code Online (Sandbox Code Playgroud)

python machine-learning pytorch bert-language-model huggingface-transformers

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

PyTorch 数据加载器显示字符串数据集的奇怪行为

我正在研究 NLP 问题并使用 PyTorch。由于某种原因,我的数据加载器返回格式错误的批次。我的输入数据包含句子和整数标签。这些句子可以是句子列表或标记列表列表。稍后我将在下游组件中将标记转换为整数。

list_labels = [ 0, 1, 0]

# List of sentences.
list_sentences = [ 'the movie is terrible',
                   'The Film was great.',
                   'It was just awful.']

# Or list of list of tokens.
list_sentences = [['the', 'movie', 'is', 'terrible'],
                  ['The', 'Film', 'was', 'great.'],
                  ['It', 'was', 'just', 'awful.']]
Run Code Online (Sandbox Code Playgroud)

我创建了以下自定义数据集:

import torch
from torch.utils.data import DataLoader, Dataset

class MyDataset(torch.utils.data.Dataset):

    def __init__(self, sentences, labels):

        self.sentences = sentences
        self.labels = labels

    def __getitem__(self, i):
        result = {}
        result['sentences'] = …
Run Code Online (Sandbox Code Playgroud)

python pytorch dataloader

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

需要帮助拆分此字符串(由逗号和"和"分隔的名字和姓氏对)

我正在使用perl,需要分割由逗号分隔的作者姓名字符串以及最后一个"和".名称形成为名字和姓氏,如下所示:

$string1 = "Joe Smith, Jason Jones, Jane Doe and Jack Jones";
$string2 = "Joe Smith, Jason Jones, Jane Doe, and Jack Jones";
$string3 = "Jane Doe and Joe Smith";
# Next line doesn't work because there is no comma between last two names
@data = split(/,/, $string1);
Run Code Online (Sandbox Code Playgroud)

我只想将全名拆分为数组的元素,就像split()所做的那样,以便@data数组包含,例如:

@data[0]: "Joe Smith"
@data[1]: "Jason Jones"
@data[2]: "Jane Doe"
@data[3]: "Jack Jones"
Run Code Online (Sandbox Code Playgroud)

但是,问题是列表中的最后两个名称之间没有逗号.任何帮助,将不胜感激.

regex perl

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

如果快速卷积需要LPF,我如何使用基于FFT的快速卷积来实现LPF?

我是一位经验丰富的软件工程师,拥有一些较小的大学DSP知识.我正在开发智能手机应用程序来处理信号数据,例如来自麦克风(以44100 Hz采样)和加速度计(以32-50 Hz采样).我的应用将是,例如,音调检测器等.

我想在手机上实现一个低通滤波器(LPF)来消除混叠频率,特别是对于采样率较低的加速度计.但是,在尝试应用基于快速FFT的卷积方法时,我发现了一个矛盾.任何帮助,将不胜感激.

这是我的推理:

  1. 我正在读取信号,我想使用LPF进行抗锯齿处理(去除混叠频率).

  2. 为了在我的智能手机上实现LPF,我选择将FIR滤波器(即窗口sinc函数)应用于时域信号.设x [n]为我的信号,f [n]为我的滤波器内核的系数.所以我想在x [n]和f [n]之间进行卷积,其中x [n]的长度为N(通常为512),f [n]的长度为M(通常为256).

  3. 我在我的智能手机(Android和iPhone)上实现了一个简单的1D卷积.该算法是典型的嵌套循环版本,并以O(NM)运行.智能手机上的运行速度太慢,N = 512且M = 256.

  4. 然后我研究了使用FFT并在O(N lgN)中运行的快速卷积算法.具体来说,滤波后的信号来自:滤波后的x [n] = IFFT(FFT(x).*FFT(f)),其中FFT是fft,IFFT是逆FFT,而*.是逐元素乘法两个数组.

  5. 但是,我发现在这个过程中存在矛盾:IFFT(FFT(x).*FFT(f)).这要求我采用x [n]的FFT,但x [n]可能具有混叠频率.这正是我从第1步开始的第一个问题!

那么,我该如何解决这个矛盾呢?如果快速卷积内部需要LPF,我如何使用快速卷积来实现LPF?

注意:一些EE人员告诉我,有些麦克风内置了基于硬件的LPF,但我无法确定智能手机的麦克风或加速度计.

iphone audio android signal-processing fft

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

Spark-SQL:如何将TSV或CSV文件读入数据帧并应用自定义模式?

我在使用制表符分隔值(TSV)和逗号分隔值(CSV)文件时使用Spark 2.0.我想将数据加载到Spark-SQL数据帧中,我想在读取文件时完全控制模式.我不希望Spark从文件中的数据中猜出架构.

如何将TSV或CSV文件加载到Spark SQL Dataframes并将模式应用于它们?

scala apache-spark apache-spark-sql spark-dataframe

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