Machine learning 在Keras模型中传递什么数据类型以进行拟合?

Machine learning 在Keras模型中传递什么数据类型以进行拟合?,machine-learning,keras,deep-learning,Machine Learning,Keras,Deep Learning,我跟随来解决一个卡格尔挑战 但是,我不明白应该将什么样的数据输入fit函数 我将训练数据集分为X\u-train,y\u-train,X\u-test,和y\u-testX_列车的形状为(13125,32,32,3) 我得到了一个错误: 检查模型目标时出错:传递给模型的Numpy数组列表的大小不是模型预期的大小。预计将看到1个阵列,但得到了以下13125个阵列的列表: 更新: # TensorFlow and tf.keras import tensorflow as tf from tenso

我跟随来解决一个卡格尔挑战

但是,我不明白应该将什么样的数据输入fit函数

我将训练数据集分为
X\u-train
y\u-train
X\u-test
,和
y\u-test
X_列车
的形状为
(13125,32,32,3)

我得到了一个错误:

检查模型目标时出错:传递给模型的Numpy数组列表的大小不是模型预期的大小。预计将看到1个阵列,但得到了以下13125个阵列的列表:

更新:

# TensorFlow and tf.keras
import tensorflow as tf
from tensorflow import keras

# Helper libraries
import numpy as np
import matplotlib.pyplot as plt

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(32,32,3)),
    keras.layers.Dense(128, activation=tf.nn.relu),
    keras.layers.Dense(10, activation=tf.nn.softmax)
])

model.compile(optimizer='adam', 
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])


X_train_stack = np.vstack(X_train)
model.fit(X_train_stack, y_train, epochs=5)
我有一个错误:

检查输入时出错:预期展平7_输入有4个维度,但得到了具有形状的数组(420000,32,3)


您需要传递numpy数组,但实际上传递的是一个numpy数组列表。使用
np.stack()
从numpy数组列表创建单个numpy数组:

X_列=np.堆栈(X_列,轴=0)

您可以添加您创建
X\u train
的方式吗?似乎问题就在这里。请注意,我将
vstack()
更改为
stack()
# TensorFlow and tf.keras
import tensorflow as tf
from tensorflow import keras

# Helper libraries
import numpy as np
import matplotlib.pyplot as plt

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(32,32,3)),
    keras.layers.Dense(128, activation=tf.nn.relu),
    keras.layers.Dense(10, activation=tf.nn.softmax)
])

model.compile(optimizer='adam', 
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])


X_train_stack = np.vstack(X_train)
model.fit(X_train_stack, y_train, epochs=5)
#read in training set
train_img = []
train_lb = []
for i in range(len(cactus_label)):
    row = cactus_label.iloc[i]
    fileName = row['id']
    train_lb.append(row['has_cactus'])
    path = "../input/train/train/{}".format(fileName)
    im = mpimg.imread(path)
    train_img.append(im)

X_train, X_test, y_train, y_test = train_test_split(train_img, train_lb) 
X_train = np.array(X_train)
X_test = np.array(X_test)