小编El *_*ikh的帖子

如何在Tensorflow中使用多层双向LSTM?

我想知道如何在Tensorflow中使用多层双向LSTM.

我已经实现了双向LSTM的内容,但我想将此模型与添加的多层模型进行比较.

我该如何在这部分中添加一些代码?

x = tf.unstack(tf.transpose(x, perm=[1, 0, 2]))
#print(x[0].get_shape())

# Define lstm cells with tensorflow
# Forward direction cell
lstm_fw_cell = rnn.BasicLSTMCell(n_hidden, forget_bias=1.0)
# Backward direction cell
lstm_bw_cell = rnn.BasicLSTMCell(n_hidden, forget_bias=1.0)

# Get lstm cell output
try:
    outputs, _, _ = rnn.static_bidirectional_rnn(lstm_fw_cell, lstm_bw_cell, x,
                                          dtype=tf.float32)
except Exception: # Old TensorFlow version only returns outputs not states
    outputs = rnn.static_bidirectional_rnn(lstm_fw_cell, lstm_bw_cell, x,
                                    dtype=tf.float32)

# Linear activation, using rnn inner loop last output
outputs = tf.stack(outputs, axis=1)
outputs = tf.reshape(outputs, (batch_size*n_steps, …
Run Code Online (Sandbox Code Playgroud)

bidirectional multi-layer lstm tensorflow recurrent-neural-network

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

Phaser和CyclicBarrier之间的区别

我偶然发现了Java并发包中CyclicBarrier和Phaser实用程序之间的区别.

我知道CyclicBarrier允许一组线程等到所有线程到达特定点.Phaser也做同样的事情,但它支持多个阶段.我也明白,CyclicBarrier可以重复使用.我认为这个重用工具使其功能与Phaser相同.

考虑以下程序:

测试Phaser:

import java.util.concurrent.Phaser;

public class PhaserTest {

    public static void main(String[] args) {
        Phaser p = new Phaser(3);
        Thread t1 = new Thread(() -> process(p), "T1");
        Thread t2 = new Thread(() -> process(p), "T2");
        Thread t3 = new Thread(() -> process(p), "T3");
        t1.start();
        t2.start();
        t3.start();
    }

    private static void process(Phaser p) {
        try {
            System.out.println("Started Phase 1: "+Thread.currentThread().getName());
            p.arriveAndAwaitAdvance();
            System.out.println("Finished Phase 1: "+Thread.currentThread().getName());
            System.out.println("Started Phase 2: "+Thread.currentThread().getName());
            p.arriveAndAwaitAdvance();
            System.out.println("Finished Phase 2: "+Thread.currentThread().getName());
        } …
Run Code Online (Sandbox Code Playgroud)

java java.util.concurrent

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

Tensorflow中MultiRNNCell和stack_bidirectional_dynamic_rnn之间的区别

我正在建立一个堆叠多个LSTM的动态RNN网络.我看到有两种选择

# cells_fw and cells_bw are list of cells eg LSTM cells
stacked_cell_fw = tf.contrib.rnn.MultiRNNCell(cells_fw)
stacked_cell_bw = tf.contrib.rnn.MultiRNNCell(cells_bw)

output = tf.nn.bidirectional_dynamic_rnn(
          stacked_cell_fw, stacked_cell_bw, INPUT,
          sequence_length=LENGTHS, dtype=tf.float32)
Run Code Online (Sandbox Code Playgroud)

VS

output = tf.contrib.rnn.stack_bidirectional_dynamic_rnn(cells_fw, cells_bw, INPUT,
sequence_length=LENGTHS, dtype=tf.float32)
Run Code Online (Sandbox Code Playgroud)

两种方法有什么区别,哪一方比另一方更好?

tensorflow recurrent-neural-network

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

Bert 嵌入层使用 BiLSTM 引发“类型错误:不支持的操作数类型”:“无类型”和“int”

我在将 Bert 嵌入层集成到 BiLSTM 模型中以进行词义消歧任务时遇到问题,

Windows 10
Python 3.6.4
TenorFlow 1.12
Keras 2.2.4
No virtual environments were used
PyCharm Professional 2019.2
Run Code Online (Sandbox Code Playgroud)

整个剧本

import os
import yaml
import numpy as np
from argparse import ArgumentParser

import tensorflow as tf
import tensorflow_hub as hub
from tensorflow.keras.layers import (LSTM, Add, Bidirectional, Dense, Input, TimeDistributed, Embedding)

from tensorflow.keras.preprocessing.sequence import pad_sequences

try:
    from bert.tokenization import FullTokenizer
except ModuleNotFoundError:
    os.system('pip install bert-tensorflow')

from tensorflow.keras.models import Model
from tensorflow.keras import backend as K
from tqdm import tqdm …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow recurrent-neural-network bert-language-model

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