【发布时间】:2021-04-05 02:11:02
【问题描述】:
我正在训练我的深度学习模型,当我运行我的代码时遇到了一些错误。
这是我的代码
import os
import json
import tensorflow as tf
from sklearn.model_selection import train_test_split
import numpy as np
import matplotlib.pyplot as plt
data_path = "data_json.json"
def load_data(data_path):
print("Data loading\n")
with open(data_path, "r") as fp:
data = json.load(fp)
x = np.array(data["mfcc"])
y = np.array(data["labels"])
print("Loaded Data")
return x, y
def prepare_datasets(test_size,val_size):
#load the data
x, y = load_data(data_path)
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size = test_size)
x_train, x_val, y_train, y_val = train_test_split(x_train,y_train,test_size = val_size)
return x_train, x_val, x_test, y_train, y_val, y_test
def build_model(input_shape):
model = tf.keras.Sequential()
model.add(tf.keras.layers.LSTM(64, input_shape = input_shape, return_sequences = True))
model.add(tf.keras.layers.LSTM(64))
model.add(tf.keras.layers.Dense(64, activation="relu"))
#model.add(tf.keras.layers.Dropout(0.3))
model.add(tf.keras.layers.Dense(10,activation = "softmax"))
return model
if __name__ == "__main__":
x_train, x_val, x_test, y_train, y_val, y_test = prepare_datasets(0.25, 0.2)
print(x_train.shape[0])
input_shape = (x_train.shape[1],x_train.shape[2])
model = build_model(input_shape)
# compile model
optimiser = tf.keras.optimizers.Adam(lr=0.001)
model.compile(optimizer=optimiser,
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.summary()
model = tf.keras.models.load_model("model_RNN_LSTM.h5")
print(model.predict(x_test[100]))
我得到的错误是在线"print(model.predict(x_test[100]))"
.ValueError: 层序号_1 的输入 0 与 层:预期 ndim=3,发现 ndim=2。收到的完整形状:(无, 13) .
我该如何纠正这个错误?我需要更改尺寸吗?
【问题讨论】:
标签: python tensorflow keras tensorflow2.0