Получение ошибок относительно формы данных при использовании Conv1D в tenorflow2.0 - PullRequest
0 голосов
/ 14 февраля 2020

ValueError: Целевой массив с формой (13400, 6, 1) был передан для вывода формы (Нет, 9, 6)

при использовании в качестве потери mean_squared_error , Эта потеря предполагает, что цели будут иметь ту же форму, что и выходные данные. Мой код:

import os
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
import tensorflow as tf
from tensorflow.keras.layers import Dense,Conv1D
from tensorflow.keras import Model
from sklearn.preprocessing import StandardScaler
tf.keras.backend.set_floatx('float64')


Data = pd.read_csv('Data.csv')
X = Data[Data.columns[0:20]]
y = Data[Data.columns[20:]]
Features = X.columns
Labels = y.columns
X = X.to_numpy()
y = y.to_numpy()

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.fit_transform(X_test)
y_train = scaler.fit_transform(y_train)
y_test = scaler.fit_transform(y_test)


X_train = X_train.reshape((X_train.shape[0], X_train.shape[1], 1))
X_test = X_test.reshape((X_test.shape[0], X_test.shape[1], 1))
y_train = y_train.reshape((y_train.shape[0], y_train.shape[1], 1))
y_test = y_test.reshape((y_test.shape[0], y_test.shape[1], 1))


model = tf.keras.models.Sequential([
        tf.keras.layers.Conv1D(filters=64,kernel_size=3,activation='relu',input_shape=X_train.shape[1:]),
        tf.keras.layers.MaxPooling1D(2),
        tf.keras.layers.Dense(6)

])


loss_fn = tf.keras.losses.MeanSquaredError()
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-4),loss=loss_fn,metrics=['accuracy','mae','mse'])

model.fit(X_train, y_train, epochs=10,batch_size=None,validation_data=(X_test,y_test))

Ссылка на CSV-файл: https://drive.google.com/open?id=1BTmybLndVlSEHJpTv9aYuyN_Rc7vWT2m

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...