小编vij*_*y m的帖子

使用seq2seq API(版本1.1及更高版本)的Tensorflow序列到序列模型

我正在使用TensorFlow v:1.1,我想使用tf.contrib.seq2seq api 实现序列模型.但是我很难理解如何使用提供的所有函数(BasicDecoder,Dynamic_decode,Helper,Training Helper ...)来构建我的模型.

这是我的设置:我想将一系列特征向量"(翻译"):( batch_size,encoder_max_seq_len,feature_dim)转换为不同长度的序列(batch_size,decoder_max_len,1).

我已经有一个带有LSTM单元的RNN 编码器,我得到了它想要作为初始输入提供给解码器的最终状态.我已经有了解码器的单元,MultiRNNCell LSM.你能帮助我使用tf.contrib.seq2seq2和dynamic_decode 的功能构建最后一部分(会非常感谢示例代码解释)吗?

这是我的代码:

import tensorflow as tf
from tensorflow.contrib import seq2seq
from tensorflow.contrib import rnn
import math

from data import gen_sum_2b2

class Seq2SeqModel:
def __init__(self,
             in_size,
             out_size,
             embed_size,
             n_symbols,
             cell_type,
             n_units,
             n_layers):
    self.in_size = in_size
    self.out_size = out_size
    self.embed_size = embed_size
    self.n_symbols = n_symbols
    self.cell_type = cell_type
    self.n_units = n_units
    self.n_layers = n_layers

    self.build_graph() …
Run Code Online (Sandbox Code Playgroud)

deep-learning tensorflow recurrent-neural-network

17
推荐指数
1
解决办法
3307
查看次数

Numpy to TFrecords:有没有更简单的方法来处理来自tfrecords的批量输入?

我的问题是如何从多个(或分片)tfrecords获得批量输入.我已经阅读了示例https://github.com/tensorflow/models/blob/master/inception/inception/image_processing.py#L410.基本的管道,把培训作为集为例,(1)首先产生一系列tfrecords(例如,train-000-of-005,train-001-of-005,...),(2)从这些文件名,生成一个列表并将其塞进了tf.train.string_input_producer获得队列,(3)同时生成一个tf.RandomShuffleQueue做其他的东西,(4)tf.train.batch_join用来生成批量输入.

我认为这很复杂,我不确定这个程序的逻辑.在我的情况下,我有一个.npy文件列表,我想生成分片的tfrecords(多个分离的tfrecords,而不只是一个单个大文件).这些.npy文件中的每一个都包含不同数量的正样本和负样本(2个类).一种基本方法是生成一个单个大型tfrecord文件.但文件太大(~20Gb).所以我采用分片的tfrecords.有没有更简单的方法来做到这一点?谢谢.

python tensorflow tfrecord tensorflow-datasets

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

“运行时错误:“slow_conv2d_cpu”未针对“Half”实现”

我正在使用 OpenAI 的新 Whisper 模型进行 STT,RuntimeError: "slow_conv2d_cpu" not implemented for 'Half'当我尝试运行它时,我得到了结果。

没有把握

这是完整的错误:

Traceback (most recent call last):
  File "/Users/reallymemorable/git/fp-stt/2-stt.py", line 20, in <module>
    result = whisper.decode(model, mel, options)
  File "/opt/homebrew/lib/python3.10/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
    return func(*args, **kwargs)
  File "/opt/homebrew/lib/python3.10/site-packages/whisper/decoding.py", line 705, in decode
    result = DecodingTask(model, options).run(mel)
  File "/opt/homebrew/lib/python3.10/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
    return func(*args, **kwargs)
  File "/opt/homebrew/lib/python3.10/site-packages/whisper/decoding.py", line 621, in run
    audio_features: Tensor = self._get_audio_features(mel)  # encoder forward pass
  File "/opt/homebrew/lib/python3.10/site-packages/whisper/decoding.py", line 565, in _get_audio_features
    audio_features …
Run Code Online (Sandbox Code Playgroud)

python pytorch

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

如何通过tensorflow中的feed_dict提供多个输入

我有一个由多个子网组成的网络(多个卷积网络,最后是一个完全连接的+ soft max层)。每个ConvNet feed都具有特定的图像区域和大小。因此,要馈送我的网络,我为每个convnet输入写一个图像占位符,并为一个批次馈送所有图像的标签写一个占位符(所有convnet输入中的所有输入图像都具有相同的标签)。不幸的是,我对feed_dict部分一无所知。例如,此代码仅适用于一次convnet培训:

    images_r, labels_r = sess.run([images, labels])
    train_feed = {images_placeholder: images_r,
              labels_placeholder: labels_r}
    _, loss_value = sess.run([train_op, loss_func], feed_dict=train_feed)
Run Code Online (Sandbox Code Playgroud)

如何扩展上面的代码来提供所有的转换网络?

tensorflow

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

使用数据集API在Tensorflow中滑动批处理窗口

有没有办法在批次中修改我的图像的组成?目前,当我创建一个大小为4的批处理时,我的批次将如下所示:

Batch1:[Img0 Img1 Img2 Img3] Batch2:[Img4 Img5 Img6 Img7]

我需要修改我的批次的组成,以便它只会移动一次到下一个图像.那应该是这样的:

Batch1:[Img0 Img1 Img2 Img3] Batch2:[Img1 Img2 Img3 Img4] Batch3:[Img2 Img3 Img4 Img5] Batch4:[Img3 Img4 Img5 Img6] Batch5:[Img4 Img5 Img6 Img7]

我在我的代码中使用了Tensorflow的Dataset API,如下所示:

def tfrecords_train_input(input_dir, examples, epochs, nsensors, past, future,
                          features, batch_size, threads, shuffle, record_type):
    filenames = sorted(
        [os.path.join(input_dir, f) for f in os.listdir(input_dir)])
      num_records = 0
      for fn in filenames:
        for _ in tf.python_io.tf_record_iterator(fn):
          num_records += 1
      print("Number of files to use:", len(filenames), …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorflow-datasets

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

使用 tf.data 读取 CSV 文件非常慢,使用 tfrecords 代替?

我有很多 CSV 文件,每条记录包含约 6000 列。第一列是标签,其余列应视为特征向量。我是 Tensorflow 新手,我不知道如何将数据读入Dataset具有所需格式的 Tensorflow。我当前正在运行以下代码:

DEFAULTS = []
n_features = 6170
for i in range(n_features+1):
  DEFAULTS.append([0.0])

def parse_csv(line):
    # line = line.replace('"', '')
    columns = tf.decode_csv(line, record_defaults=DEFAULTS)  # take a line at a time
    features = {'label': columns[-1], 'x': tf.stack(columns[:-1])}  # create a dictionary out of the features
    labels = features.pop('label')  # define the label

    return features, labels


def train_input_fn(data_file=sample_csv_file, batch_size=128):
    """Generate an input function for the Estimator."""
    # Extract lines from input files using …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorflow-datasets

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

两个不同长度张量之间的交集

我有张量流的情况。我想找到两个具有不同形状的二维张量的交集。

例子:

object_ids_  [[0 0]
              [0 1]
              [1 1]]

object_ids_more_07_  [[0 0]
                      [0 1]
                      [0 2]
                      [1 0]
                      [1 2]]
Run Code Online (Sandbox Code Playgroud)

我正在寻找的输出是:

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

我遇到了“tf.sets.set_intersection”,tensorflow页面:https://www.tensorflow.org/api_docs/python/tf/sets/set_intersection

但无法对不同形状的张量执行此操作。我发现的另一个实现位于:

求两个张量的交集。返回两个输入张量中已排序的唯一值

但很难将其复制到二维张量。

任何帮助将不胜感激,谢谢

tensorflow

4
推荐指数
1
解决办法
1138
查看次数

如何计算 ResNet 架构中的梯度?

我假设不知何故每层的梯度将为 0.1。一个层可以通过累积梯度来计算的绘制/堆栈网络的梯度 在此处输入图片说明

在 ResNet 中,梯度通过跳过连接传播。那么,我怎样才能达到x上图的梯度呢?是0.1x0.1+0.1还是0.1

machine-learning neural-network deep-learning

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

Tensorflow:tf.train.Feature 错误“预期之一:字节”

全部

我正在尝试将数据序列化到 tensorflow 中的 tfrecords 文件。我按照这里的说明操作:https : //github.com/tensorlayer/tensorlayer/blob/master/example/tutorial_tfrecord.py

如本说明所示,我需要example 为每个记录构建一个,每个记录example包含多个feature.

但是,我在初始化该功能时遇到了问题。这是我的测试代码:

import tensorflow as tf
import numpy as np

feature_str=tf.train.Feature(bytes_list=tf.train.BytesList(value = np.array(["a" , "b"])))

feature_int=tf.train.Feature(bytes_list=tf.train.Int64List(value = np.array([32 , 24])))

feature_flo=tf.train.Feature(bytes_list=tf.train.FloatList(value = np.array([32.1 , 24.1 ])))
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了以下错误,这是直觉的:

usr/local/lib/python2.7/dist-packages/h5py/ init .py:36: FutureWarning:不推荐将 issubdtype 的第二个参数从floatto转换np.floating。将来,它将被视为np.float64 == np.dtype(float).type. from ._conv import register_converters as _register_converters Traceback(最近一次调用):文件“test.py”,第7行,在feature_int=tf.train.Feature(bytes_list=tf.train.Int64List(value = np.array([32 , 24]))) 类型错误:MergeFrom() 的参数必须是同一类的实例:预期的 tensorflow.BytesList 得到了 tensorflow.Int64List。

我进一步尝试使用tf.train.BytesListfornp.array([32,24])并得到以下错误:

feature_int=tf.train.Feature(bytes_list=tf.train.BytesList(value = np.array([32 …

python numpy tensorflow

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

初始化词汇表外(OOV)令牌

我正在为NLP任务构建TensorFlow模型,我正在使用预训练的Glove 300d字矢量/嵌入数据集.

显然,一些令牌不能被解析为嵌入,因为未包含在用于单词矢量嵌入模型的训练数据集中,例如稀有名称.

我可以用0的向量替换那些令牌,但不是将这些信息丢弃在地板上,我更喜欢以某种方式对其进行编码并包含在我的训练数据中.

说,我有'raijin'这个词,它无法解析为嵌入向量,用Glove嵌入数据集一致地编码它的最佳方法是什么?将它转换为300d向量的最佳方法是什么?

谢谢.

embedding tensorflow word-embedding

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