小编ytr*_*ewq的帖子

如何解压缩pkl文件?

我有一个来自MNIST数据集的pkl文件,它由手写的数字图像组成.

我想看看每个数字图像,所以我需要解压缩pkl文件,除了我不知道如何.

有没有办法解压缩/解压缩pkl文件?

python pickle mnist deep-learning

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

代词解决方案倒退

通常的共指解决方案以下列方式工作:

提供

The man likes math. He really does.
Run Code Online (Sandbox Code Playgroud)

它弄清楚了

he 
Run Code Online (Sandbox Code Playgroud)

是指

the man.
Run Code Online (Sandbox Code Playgroud)

有很多工具可以做到这一点.

但是,有没有办法向后做?

例如,

特定

The man likes math. The man really does.
Run Code Online (Sandbox Code Playgroud)

我想把代词解决方案做"倒退"

这样我得到的输出就像

The man likes math. He really does.
Run Code Online (Sandbox Code Playgroud)

我的输入文本大多是3~10个句子,我正在使用python.

python nlp nltk stanford-nlp

23
推荐指数
1
解决办法
1047
查看次数

带有多标签图像的咖啡

我有一个有多个标签的图像数据集; 数据集中有100个类,每个图像都有1到5个与之关联的标签.

我正在按照以下URL中的说明操作:

https://github.com/BVLC/caffe/issues/550

它说我需要生成一个文本文件,列出图像及其标签,如

/home/my_test_dir/picture-foo.jpg 0
/home/my_test_dir/picture-foo1.jpg 1
Run Code Online (Sandbox Code Playgroud)

在我的情况下,由于我有多标签图像,它是否可以简单地添加标签,如下所示?

/home/my_test_dir/picture-foo.jpg 0 2 5
/home/my_test_dir/picture-foo1.jpg 1 4
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,它可能不会那么简单,如果我是对的,在什么步骤,我应该如何在设置Caffe的过程中整合数据集的多标签?

neural-network multilabel-classification deep-learning caffe

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

Caffe:从Python读取LMDB

我使用caffe提取了一些功能,它会生成一个.mdb文件.然后我尝试使用Python读取它并将其显示为可读数字.

import lmdb

lmdb_env = lmdb.open('caffefeat')
lmdb_txn = lmdb_env.begin()
lmdb_cursor = lmdb_txn.cursor()

for key, value in lmdb_cursor:
    print str(value)
Run Code Online (Sandbox Code Playgroud)

这会打印出很长的不可读,破碎的字符.

然后我尝试打印int(value),返回以下内容:

ValueError: invalid literal for int() with base 10: '\x08\x80 \x10\x01\x18\x015\x8d\x80\xad?5'
Run Code Online (Sandbox Code Playgroud)

float(value)给出以下内容:

ValueError: could not convert string to float:? 5????5
Run Code Online (Sandbox Code Playgroud)

这是lmdb文件本身的问题,还是与数据类型的转换有关?

python lmdb caffe

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

Python:排序字典词典

我有一个dict(也是一个更大的dict的关键)看起来像

wd[wc][dist][True]={'course': {'#': 1, 'Fisher': 4.0},
 'i': {'#': 1, 'Fisher': -0.2222222222222222},
 'of': {'#': 1, 'Fisher': 2.0},
 'will': {'#': 1, 'Fisher': 3.5}}
Run Code Online (Sandbox Code Playgroud)

我想通过相应的'Fisher'值对关键词(在最高级别)进行排序......以便输出看起来像

wd[wc][dist][True]={'course': {'Fisher': 4.0, '#': 1}, 'will': {'Fisher': 3.5, '#': 1}, 'of': {'Fisher': 2.0, '#': 1}, 'i': {'Fisher': -0.2222222222222222, '#': 1}}
Run Code Online (Sandbox Code Playgroud)

我已尝试使用items()和sorted()但无法解决...请帮助我:(

python sorting dictionary

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

PyTorch:使用numpy数组为GRU/LSTM手动设置权重参数

我正在尝试用pytorch中的手动定义参数填充GRU/LSTM.

我有numpy数组用于参数的形状,如文档中所定义(https://pytorch.org/docs/stable/nn.html#torch.nn.GRU).

它似乎工作,但我不确定返回的值是否正确.

这是用numpy参数填充GRU/LSTM的正确方法吗?

gru = nn.GRU(input_size, hidden_size, num_layers,
              bias=True, batch_first=False, dropout=dropout, bidirectional=bidirectional)

def set_nn_wih(layer, parameter_name, w, l0=True):
    param = getattr(layer, parameter_name)
    if l0:
        for i in range(3*hidden_size):
            param.data[i] = w[i*input_size:(i+1)*input_size]
    else:
        for i in range(3*hidden_size):
            param.data[i] = w[i*num_directions*hidden_size:(i+1)*num_directions*hidden_size]

def set_nn_whh(layer, parameter_name, w):
    param = getattr(layer, parameter_name)
    for i in range(3*hidden_size):
        param.data[i] = w[i*hidden_size:(i+1)*hidden_size]

l0=True

for i in range(num_directions):
    for j in range(num_layers):
        if j == 0:
            wih = w0[i, :, :3*input_size]
            whh = w0[i, :, 3*input_size:]  # …
Run Code Online (Sandbox Code Playgroud)

python lstm pytorch rnn

12
推荐指数
2
解决办法
4053
查看次数

计算在penn树库上训练LSTM的困惑

我正在penn treebank上实施语言模型培训.

我为每个时间步增加了损失然后计算困惑.

即使经过一段时间的训练,这也让我感到非常困难,数千亿.

损失本身会减少,但最多只能减少到20左右.(我需要一位数的损失以获得合理的困惑).

这让我想知道我的困惑计算是否被误导了.

它应该基于每个时间步的损失,然后平均而不是将它们全部添加?

我的batch_size是20,num_steps是35.

def perplexity(loss):
    perplexity = np.exp(loss)
    return perplexity

...
loss = 0
x = nn.Variable((batch_size, num_steps))
t = nn.Variable((batch_size, num_steps))
e_list = [PF.embed(x_elm, num_words, state_size, name="embed") for x_elm in F.split(x, axis=1)]
t_list = F.split(t, axis=1)

for i, (e_t, t_t) in enumerate(zip(e_list, t_list)):
    h1 = l1(F.dropout(e_t,0.5))
    h2 = l2(F.dropout(h1,0.5))
    y = PF.affine(F.dropout(h2,0.5), num_words, name="pred")
    t_t = F.reshape(t_t,[batch_size,1])
    loss += F.mean(F.softmax_cross_entropy(y, t_t))

for epoch in range(max_epoch):
    ....
    for i in range(iter_per_epoch):
        x.d, t.d = get_words(train_data, …
Run Code Online (Sandbox Code Playgroud)

lstm penn-treebank rnn

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

用numpy实现RNN

我正试图用numpy实现递归神经网络.

我目前的输入和输出设计如下:

x 形状:(序列长度,批量大小,输入维度)

h :(层数,方向数,批量大小,隐藏大小)

initial weight:(方向数,2*隐藏大小,输入大小+隐藏大小)

weight:(层数-1,方向数,隐藏大小,方向*隐藏大小+隐藏大小)

bias:(层数,方向数,隐藏大小)

我已经查找了RNN的pytorch API作为参考(https://pytorch.org/docs/stable/nn.html?highlight=rnn#torch.nn.RNN),但略微改变它以包括初始权重作为输入.(输出形状与pytorch中的相同)

当它正在运行时,我无法确定它是否表现正常,因为我输入随机生成的数字作为输入.

特别是,我不确定我的输入形状是否设计正确.

有专家可以给我一个指导吗?

def rnn(xs, h, w0, w=None, b=None, num_layers=2, nonlinearity='tanh', dropout=0.0, bidirectional=False, training=True):
    num_directions = 2 if bidirectional else 1
    batch_size = xs.shape[1]
    input_size = xs.shape[2]
    hidden_size = h.shape[3]
    hn = []
    y = [None]*len(xs)

    for l in range(num_layers):
        for d in range(num_directions):
            if l==0 and d==0:
                wi = w0[d, :hidden_size,  :input_size].T
                wh = w0[d, hidden_size:,  input_size:].T
                wi = np.reshape(wi, (1,)+wi.shape)
                wh …
Run Code Online (Sandbox Code Playgroud)

python numpy recurrent-neural-network rnn

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

将多个句子合并为一个句子

给定以下句子,例如:

A cat is on a bed.
The color of the cat is brown.
The bed is small.
Run Code Online (Sandbox Code Playgroud)

有没有办法将句子组合/总结成一个句子,例如:

A brown cat is on a small bed.
Run Code Online (Sandbox Code Playgroud)

我不了解摘要提取/生成,但是否有希望将其用于此目的?

nlp summary nltk stanford-nlp

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

music21:读取MIDI文件的BPM和乐器信息并将其写回文件

我正在尝试实现一个读取 MIDI 文件并将其写回的代码。

我有以下代码来解析持续时间、音调和位置。

import music21
from music21 import *
piece=converter.parse('input.mid')

all_parts=[]
for part in piece.parts:
    part_tuples=[]
    try:
        track_name = part[0].bestName()
    except AttributeError:
        track_name = 'None'
    part_tuples.append(track_name)
    for event in part:
        for y in event.contextSites():
            if y[0] is part:
                offset=y[1]
        if getattr(event,'isNote',None) and event.isNote:
            part_tuples.append([event.quarterLength,event.pitch.midi,offset])
        if getattr(event,'isRest',None) and event.isRest:
            part_tuples.append([event.quarterLength,'Rest',offset])

    all_parts.append(part_tuples)
Run Code Online (Sandbox Code Playgroud)

然后我进行一些转换并将其写回文件,如果音高为 -1 ('isRest') 则扩展 t (所有音符的力度设置为 90):

mt = midi.MidiTrack(1)

t=0
tLast=0
for d,p,v in converted_notes:
    if p!=-1:
        dt = midi.DeltaTime(mt)
        dt.time = t-tLast
        #add to track events
        mt.events.append(dt) …
Run Code Online (Sandbox Code Playgroud)

python midi music21

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