标签: lstm

ValueError: 形状必须至少为 3 级,但对于 '{{node BiasAdd}} = BiasAdd[T=DT_FLOAT, data_format="NCHW"](add,bias)' 为 2 级,输入形状为:

完毕

我只是想运行并复制以下项目:https://machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-networks-python-keras/。基本上到目前为止,我已经完成了链接项目中的所有操作,但我遇到了以下问题:

我自己的数据集 - 我尝试过使用数据框:

  • 我已经尝试使用他的原始数据集完全 100% 他的代码,但我仍然有相同的错误
  • A.) 有 2 列(第一列日期和第二列目标值),
  • B.) 将时间代码放入仅包含目标值的索引和数据帧中。

输入代码:

# reshape into X=t and Y=t+1
look_back = 1
trainX, trainY = create_dataset(train, look_back)
testX, testY = create_dataset(test, look_back)

# reshape input to be [samples, time steps, features]
trainX = numpy.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1]))
testX = numpy.reshape(testX, (testX.shape[0], 1, testX.shape[1]))

# create and fit the LSTM network
model = Sequential()
model.add(LSTM(4, input_shape=(1, look_back)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=2)
Run Code Online (Sandbox Code Playgroud)

输出错误:

--------------------------------------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

python python-3.x lstm keras tensorflow

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

错误节点:“binary_crossentropy/Cast”在训练模型时不支持将字符串转换为浮点数

我想训练我的数据,我已经将我的数据与 word2vec 预训练模型进行字符串连接https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.id.300.vec.gz,并成功创建模型,但是当我想训练数据集时,我收到了这样的错误

UnimplementedError                        Traceback (most recent call last)
<ipython-input-28-85ce60cd1ded> in <module>()
      1 history = model.fit(X_train, y_train, epochs=6,
      2                     validation_data=(X_test, y_test),
----> 3                     validation_steps=30)

1 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
     53     ctx.ensure_initialized()
     54     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
---> 55                                         inputs, attrs, num_outputs)
     56   except core._NotOkStatusException as e:
     57     if name is not None:

UnimplementedError: Graph execution error:

#skiping error

Node: 'binary_crossentropy/Cast'
Cast string to float is not supported
     [[{{node binary_crossentropy/Cast}}]] [Op:__inference_train_function_21541]
Run Code Online (Sandbox Code Playgroud)

代码 : …

python nlp machine-learning lstm tf.keras

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

没有名为“keras.wrappers”的模块

我在 google colab 上有这段代码,它允许我使用 gridsearchCV 优化 LSTM 模型,但最近出现了一条错误消息:

ModuleNotFoundError:没有名为“keras.wrappers”的模块。

除了“keras.wrappers”之外,还有其他模块允许重新启动代码吗?

代码:

from keras.layers import Dense, LSTM, Dropout
from keras import optimizers

from sklearn.model_selection import GridSearchCV
from keras.wrappers.scikit_learn import KerasRegressor

def create_model(unit, dropout_rate, lr ):
 model=Sequential()
 model.add(LSTM(unit,return_sequences=True, input_shape=(1,5)))
 model.add(Dropout(dropout_rate))
 model.add(LSTM(unit))
 model.add(Dropout(dropout_rate))
 model.add(Dense(1))
 adam= optimizers.Adam(lr)
 model.compile(optimizer=adam, loss='mean_squared_error')

 return model

my_regressor = KerasRegressor(build_fn=create_model, verbose=2)

grid_param_LSTM = {
    'unit':   [50, 70, 120],
    'batch_size': [12, 24, 48],
    'epochs': [200],
    'lr': [0.001, 0.01, 0.1],
    'dropout_rate':[0.1, 0.2, 0.3]
}

grid_GBR = GridSearchCV(estimator=my_regressor, param_grid = grid_param_LSTM, scoring = …
Run Code Online (Sandbox Code Playgroud)

python lstm keras tensorflow

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

如何在CNTK中实现序列分类LSTM网络?

我正致力于LSTM神经网络的实施,用于序列分类.我想用以下参数设计一个网络:

  1. 输入:一个n热矢量序列.
  2. 网络拓扑:双层LSTM网络.
  3. 输出:给定序列属于类的概率(二进制分类).我想只考虑第二个LSTM层的最后一个输出.

我需要在CNTK中实现它,但我很难,因为它的文档编写得不是很好.有人可以帮助我吗?

machine-learning neural-network lstm recurrent-neural-network cntk

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

即使访问无限数据,dropout也可以改进模型吗?

是否有充分了解何时使用辍学与简单获取更多数据的指导原则?我之前已经理解,如果有足够的数据,就不会想要使用dropout.然而,我最近有一个模型(4层LSTM处理音频输入),无论我提供多少数据,都会凭经验收敛到一定的损失 - 然后在我添加丢失时显着改善.

这种现象很好理解吗?那么,即使有更多(可能是无限的)数据可用,总是会使用dropout吗?

后续行动:如果是这样,我在RL论文中没有多少提及辍学.我认为这是因为有无限的可生成数据.这里是否有其他细微差别可以考虑探讨的状态空间的分数,或者可用的训练数据的异质性等?

reinforcement-learning deep-learning lstm tensorflow

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

Tensorflow rnn:未定义名称"seq2seq"

我正在尝试这个笔记本:https: //github.com/sjchoi86/Tensorflow-101/blob/master/notebooks/char_rnn_sample_tutorial.ipynb

我对[6]中的这一行有疑问:

outputs, final_state = seq2seq.rnn_decoder(inputs, istate, cell, loop_function=None, scope='rnnlm')
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

NameError: name 'seq2seq' is not defined
Run Code Online (Sandbox Code Playgroud)

我正在使用tensorflow 1.0.1.我试过了

tf.contrib.seq2seq
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

AttributeError: 'module' object has no attribute 'rnn_decoder'
Run Code Online (Sandbox Code Playgroud)

我认为在tensorflow 1.0.1中新的rnn网络实现是一个问题,但我不知道如何修复它.

python attributeerror lstm tensorflow recurrent-neural-network

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

ValueError:无法为Tensor'Locholder_1:0'提供shape(64,)的值,其形状为'(?,10)'

我是tensorflow的新手,我正在尝试重现网站上发布的实验https://github.com/jiegzhan/image-classification-rnn

我的TensorFlow版本是1.0.1,所以我稍微改变了他的代码.我使用的代码如下.

import os
import sys
import json
import time
import tensorflow as tf
from tensorflow.contrib.rnn.python.ops import rnn, rnn_cell
from tensorflow.examples.tutorials.mnist import input_data

n_input = 28 # MNIST data input (img shape: 28*28)
n_steps = 28 # timesteps
n_hidden = 128 # hidden layer num of features
n_classes = 10 # MNIST total classes (0-9 digits)
#coding:utf-8
def rnn_model(x, weights, biases):
    """RNN (LSTM or GRU) model for image"""
    x = tf.transpose(x, [1, 0, 2])
    x = tf.reshape(x, [-1, n_input]) …
Run Code Online (Sandbox Code Playgroud)

mnist lstm tensorflow

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

keras lstm(100)和lstm(单位= 100)产生不同的结果?

我正在使用keras 2.0.2为分类任务创建一个lstm网络.网络拓扑如下:

from numpy.random import seed
seed(42)
from tensorflow import set_random_seed
set_random_seed(42)
import os
#os.environ['PYTHONHASHSEED'] = '0'

model = Sequential()
model.add(embedding_layer)    
model.add(LSTM(units=100)) #line A
model.add(Dropout(0.2))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

同一数据集上,使用当前行A,我得到一个结果:

    precision    recall  f1  support
0   0.68    0.58    0.63    305
2   0.92    0.95    0.93    1520
avg 0.8 0.76    0.78    1825
Run Code Online (Sandbox Code Playgroud)

,其中0,2表示类标签

但是当A行改为

model.add(LSTM(100))
Run Code Online (Sandbox Code Playgroud)

我得到了不同的结果:

    precision    recall  f1  support
0   0.66    0.58    0.62    305
2   0.92    0.94    0.93    1520
avg 0.79    0.76    0.77    1825
Run Code Online (Sandbox Code Playgroud)

根据keras文档https://keras.io/layers/recurrent/#lstm,这对我没有意义,我认为两行应该相同?我误解了什么吗?

neural-network lstm keras

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

Keras中的状态LSTM:是否可以拟合,评估和预测?

我想扩展一下何时重置状态的问题。

有状态的LSTM:何时重置状态?

假设我这样训练一个有状态模型:

for i in range(epochs):
    model.fit(X_train, y_train, epochs=1, batch_size=1, shuffle=False)
    model.reset_states()
Run Code Online (Sandbox Code Playgroud)

我的训练和测试集来自一个时间序列数据集,而测试集紧随训练集之后。

接下来,我要评估测试集并获得一组预测。

score = model.evaluate(X_test, y_test, batch_size=1, verbose=True)

prediction = model.predict(X_test, batch_size=1)
Run Code Online (Sandbox Code Playgroud)

我感觉好像在训练循环结束时重置模型状态会导致评估或预测步骤错误,至少在集合开始时会出错。是这样吗?如果数据依序继续进入测试集中,是否应该不重置最后一个时期的状态?

此外,在对测试集进行评估之后,是否需要将模型的状态恢复到训练集结束时的状态,然后才能尝试进行预测?我应该复制模型吗?保存并重新加载吗?

machine-learning stateful deep-learning lstm keras

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

使LSTM从3个变量的相关性中学习

我有3个变量x,y,z的数据集。它们是3种不同传感器的读数。这些将作为输入。

当这些传感器找到特定对象时,其读数的相应输出应为1。否则,那里的读数的相应输出应为0。

这是他们找到对象时的示例 这是他们找到对象时的示例

这是当他们找不到对象的例子 在此处输入图片说明

我要做的是制作一个神经网络(可能是LSTM)或任何其他方法来接收传感器的读数,并告诉传感器是否在寻找对象。请注意,传感器输出的值通常与图中的值不同,但是我注意到的是读数与它们之间的距离之间的相关性。

最好的实现方法是什么?

machine-learning deep-learning lstm keras tensorflow

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