小编Chu*_*ows的帖子

在PyTorch中使用张量索引多维张量

我有以下代码:

a = torch.randint(0,10,[3,3,3,3])
b = torch.LongTensor([1,1,1,1])
Run Code Online (Sandbox Code Playgroud)

我有一个多维索引,b并希望用它来选择一个单元格a.如果b不是张量,我可以这样做:

a[1,1,1,1]
Run Code Online (Sandbox Code Playgroud)

哪个返回正确的单元格,但是:

a[b]
Run Code Online (Sandbox Code Playgroud)

不起作用,因为它只选择了a[1]四次.

我怎样才能做到这一点?谢谢

pytorch tensor

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

在pytorch中实现单词丢失

我想将单词丢失添加到我的网络中,以便我可以有足够的训练示例来训练“unk”标记的嵌入。据我所知,这是标准做法。假设 unk token 的索引为 0,padding 的索引为 1(如果更方便的话,我们可以切换它们)。

这是一个简单的 CNN 网络,它以我期望的方式实现单词丢失:

class Classifier(nn.Module):
    def __init__(self, params):
        super(Classifier, self).__init__()
        self.params = params
        self.word_dropout = nn.Dropout(params["word_dropout"])
        self.pad = torch.nn.ConstantPad1d(max(params["window_sizes"])-1, 1)
        self.embedding = nn.Embedding(params["vocab_size"], params["word_dim"], padding_idx=1)
        self.convs = nn.ModuleList([nn.Conv1d(1, params["feature_num"], params["word_dim"] * window_size, stride=params["word_dim"], bias=False) for window_size in params["window_sizes"]])
        self.dropout = nn.Dropout(params["dropout"])
        self.fc = nn.Linear(params["feature_num"] * len(params["window_sizes"]), params["num_classes"])

    def forward(self, x, l):
        x = self.word_dropout(x)
        x = self.pad(x)
        embedded_x = self.embedding(x)
        embedded_x = embedded_x.view(-1, 1, x.size()[1] * self.params["word_dim"]) # [batch_size, 1, seq_len * word_dim] …
Run Code Online (Sandbox Code Playgroud)

pytorch dropout

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

猫鼬无法按名称识别集合

这是我的代码:

var mongoose = require('mongoose');
var db = mongoose.createConnection('localhost', 'mcfly');

db.once('open', function() {

    var schema = new mongoose.Schema({
        firstname: String,
        lastname: String
    });

    var col = db.model('mathpeep', schema);

    col.find({firstname: 'hey'}, function(err, Col) {
        console.log(Col);
    });
})
Run Code Online (Sandbox Code Playgroud)

我的 mongod 运行正常,我运行了“mango”并在集合“mathpeep”中的数据库“mcfly”中输入了几个条目。这段代码基本上是从它工作的另一个地方复制的,一直到变量名,所以我不知道出了什么问题。

问题是我的数据库看起来像这样:

> use mcfly
switched to db mcfly
> db.createCollection('mathpeep')
{ "ok" : 1 }
> show collections
mathpeep
system.indexes
> db.mathpeep.insert({firstname: 'hey', lastname: 'ayy'})
WriteResult({ "nInserted" : 1 })
> db.mathpeep.insert({firstname: 'aaa', lastname: 'aaaaa'})
WriteResult({ "nInserted" : 1 })
> …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

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

张量流 LSTM 模型中的 NaN 损失

以下网络代码应该是您经典的简单 LSTM 语言模型,一段时间后开始输出 nan loss……在我的训练集上需要几个小时,而且我无法在较小的数据集上轻松复制它。但它总是发生在认真的训练中。

Sparse_softmax_with_cross_entropy 在数值上应该是稳定的,所以它不可能是原因......但除此之外,我没有看到任何其他节点可能会导致图中出现问题。可能是什么问题呢?

class MyLM():
    def __init__(self, batch_size, embedding_size, hidden_size, vocab_size):
        self.x = tf.placeholder(tf.int32, [batch_size, None])  # [batch_size, seq-len]
        self.lengths = tf.placeholder(tf.int32, [batch_size])  # [batch_size]

        # remove padding. [batch_size * seq_len] -> [batch_size * sum(lengths)]
        mask = tf.sequence_mask(self.lengths)  # [batch_size, seq_len]
        mask = tf.cast(mask, tf.int32)  # [batch_size, seq_len]
        mask = tf.reshape(mask, [-1])  # [batch_size * seq_len]

        # remove padding + last token. [batch_size * seq_len] -> [batch_size * sum(lengths-1)]
        mask_m1 = tf.cast(tf.sequence_mask(self.lengths - 1, maxlen=tf.reduce_max(self.lengths)), tf.int32) …
Run Code Online (Sandbox Code Playgroud)

python lstm tensorflow

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

标签 统计

pytorch ×2

dropout ×1

lstm ×1

mongodb ×1

mongoose ×1

node.js ×1

python ×1

tensor ×1

tensorflow ×1