警告:tensorflow:模型是使用形状 (20, 37, 42) 为输入 Tensor("input_5:0", shape=(20, 37, 42), dtype=float32) 构造的,但在不兼容的输入上调用它形状(无,37)。
你好!深度学习菜鸟在这里...我在使用 LSTM 层时遇到问题。输入是一个长度为 37 的 float 数组,其中包含 2 个浮点数和一个转换为 float 的长度为 35 的 one-hot 数组。输出是一个长度为 19 的数组,其中包含 0 和 1。正如标题所示,我在重塑输入数据以适应模型时遇到了麻烦,而且我什至不确定什么输入维度会被视为“兼容”
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import random
inputs, outputs = [], []
for x in range(10000):
tempi, tempo = [], []
tempi.append(random.random() - 0.5)
tempi.append(random.random() - 0.5)
for x2 in range(35):
if random.random() > 0.5:
tempi.append(1.)
else:
tempi.append(0.)
for x2 in range(19):
if random.random() > 0.5:
tempo.append(1.)
else:
tempo.append(0.)
inputs.append(tempi)
outputs.append(tempo)
batch = 20
timesteps = 42
training_units = 0.85
cutting_point_i = int(len(inputs)*training_units)
cutting_point_o = int(len(outputs)*training_units)
x_train, x_test = np.asarray(inputs[:cutting_point_i]), np.asarray(inputs[cutting_point_i:])
y_train, y_test = np.asarray(outputs[:cutting_point_o]), np.asarray(outputs[cutting_point_o:])
input_layer = keras.Input(shape=(37,timesteps),batch_size=batch)
dense = layers.LSTM(150, activation="sigmoid", return_sequences=True)
x = dense(input_layer)
hidden_layer_2 = layers.LSTM(150, activation="sigmoid", return_sequences=True)(x)
output_layer = layers.Dense(10, activation="softmax")(hidden_layer_2)
model = keras.Model(inputs=input_layer, outputs=output_layer, name="my_model"
郎朗坤
UYOU
相关分类