在 Python keras 中不正确地连接 LSTM 层
Improperly concatenating LSTM layers in Python keras
我有两个具有不同时间分辨率的数据集,我想输入到同一个 LSTM 模型。我 运行 遇到了串联过程的问题,即使我使用的是一个简单的数据集,我也相信我遗漏了一些我看不到的简单东西。让我们来看下面这个简单的例子,它是我正在尝试的方法的简化版本:
import numpy as np
from keras import layers
train_x1 = np.random.randint(0,100,size=(10,10,10)) # 10 samples, 10 time-steps, 10 variables
train_x2 = np.random.randint(0,100,size=(10,30,6)) # 10 samples, 30 time-steps, 6 variables
inp1 = layers.Input(shape=(train_x1.shape[1], train_x1.shape[2]))
inp2 = layers.Input(shape=(train_x2.shape[1], train_x2.shape[2]))
x = layers.LSTM(10)(inp1)
y = layers.LSTM(10)(inp2)
x = layers.Dense(1)(x)
y = layers.Dense(1)(y)
z = np.concatenate([x,y])
但是我得到一个错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<__array_function__ internals>", line 6, in concatenate
ValueError: zero-dimensional arrays cannot be concatenated
我很困惑这个例子中的错误是从哪里产生的?
x
和 y
是 keras 张量对象,对它们使用 np.concatenate
没有意义。可能您想尝试 keras.layers.Concatenate()([x,y])
.
我有两个具有不同时间分辨率的数据集,我想输入到同一个 LSTM 模型。我 运行 遇到了串联过程的问题,即使我使用的是一个简单的数据集,我也相信我遗漏了一些我看不到的简单东西。让我们来看下面这个简单的例子,它是我正在尝试的方法的简化版本:
import numpy as np
from keras import layers
train_x1 = np.random.randint(0,100,size=(10,10,10)) # 10 samples, 10 time-steps, 10 variables
train_x2 = np.random.randint(0,100,size=(10,30,6)) # 10 samples, 30 time-steps, 6 variables
inp1 = layers.Input(shape=(train_x1.shape[1], train_x1.shape[2]))
inp2 = layers.Input(shape=(train_x2.shape[1], train_x2.shape[2]))
x = layers.LSTM(10)(inp1)
y = layers.LSTM(10)(inp2)
x = layers.Dense(1)(x)
y = layers.Dense(1)(y)
z = np.concatenate([x,y])
但是我得到一个错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<__array_function__ internals>", line 6, in concatenate
ValueError: zero-dimensional arrays cannot be concatenated
我很困惑这个例子中的错误是从哪里产生的?
x
和 y
是 keras 张量对象,对它们使用 np.concatenate
没有意义。可能您想尝试 keras.layers.Concatenate()([x,y])
.