当前位置: 首页 > 知识库问答 >
问题:

使用Tensorflow训练模型的输入数组形状应该是什么

司马祖鹤
2023-03-14

我按照教程中的步骤使用Tensorflow训练神经网络,如上所示https://www.tensorflow.org/alpha/tutorials/keras/overfit_and_underfit

在训练数据值上运行拟合函数时,遇到输入形状有问题的错误。

模型架构

NUM_WORDS = 10000
baseline_model = keras.Sequential([
    keras.layers.Dense(16, activation = 'relu',input_shape(NUM_WORDS,)),
    keras.layers.Dense(16, activation = 'relu'),
    keras.layers.Dense(1, activation = 'sigmoid')
])

baseline_model.compile(optimizer='adam', 
                       loss='binary_crossentropy', 
                       metrics=['accuracy', 'binary_crossentropy'])
baseline_model.summary()

baseline_history = baseline_model.fit(train_data, 
                                      train_labels, 
                                      epochs=20, 
                                      batch_size=512, 
                                      validation_data=(test_data, test_labels), 
                                      verbose=2)

---------------------------------------------------------------------------ValueError Traceback(最近一次调用最后一次)在4个批次大小=512,5个验证数据=(测试数据,测试标签)----

~/env\u tensorflow2\u alpha/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py in fit(self、x、y、批大小、历元、冗余、回调、验证拆分、验证数据、无序、类权重、样本权重、初始历元、每个历元的步骤、验证步骤、验证队列频率、最大大小、工作人员、使用多处理、**********kwargs)816批次大小=批次大小,817个步骤=验证步骤--

~/env\u tensorflow2\u alpha/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py in\u-standard\u-user\u数据(self,x,y,sample\u-weight,class\u-weight,batch\u-size,check\u-steps,steps\u-name,steps,validation\u-split,shuffle,extract\u-tensors\u-from\u-dataset)2594进纸输入形状,
2595 check\u-batch\u-axis=False,#不要强制执行批量大小-

标准化输入数据(数据、名称、形状、检查批处理轴、异常前缀)347中的~/env\u tensorflow2\u alpha/lib/python3.6/site-packages/tensorflow/python/keras/engine/training\u utils.py:应为'names[i]'具有形状'348 str(形状)'但获得了具有形状的数组'--

ValueError:检查输入时出错:预期密集_21_输入具有形状(10000),但获得具有形状(1,)的数组

列车组数据和列车组标签具有以下形状:

print("Train data shape: ", train_data.shape)
print("Train label shape: ", train_labels.shape)

列车数据形状:(25000,10000)列车标签形状:(25000,)

为什么我在这里得到一个错误,我需要为输入数组中的batch_size容纳另一个维度吗?

我正在使用Tensorflow版本:2.0.0-alpha0,提前感谢!!

共有1个答案

乐正翰
2023-03-14

代码在我看来非常好,除了一个小错误,

keras.layers.Dense(16,激活='relu',输入形状(NUM\u WORDS),)

你错过了一个=,所以它应该是,

keras.layers.Dense(16,激活='relu',输入形状=(NUM\u WORDS,)

我能够在GoogleColab空间中毫无错误地运行相同的代码。

希望这有帮助!

 类似资料:
  • 目前为止,我们只是使用了 TensorFlow 的高级 API —— tf.keras,它的功能很强大:搭建了各种神经网络架构,包括回归、分类网络、Wide & Deep 网络、自归一化网络,使用了各种方法,包括批归一化、丢弃和学习率调度。事实上,你在实际案例中 95% 碰到的情况只需要tf.keras就足够了(和tf.data,见第 13 章)。现在来深入学习 TensorFlow 的低级 Py

  • 问题内容: 我有一个由 N = 4000个样本 组成的数据集X ,每个样本都包含 d = 2个特征 (连续值),这些特征跨越 t = 10个时间步长 。在时间步骤11,我还具有每个样本的相应“标签”,它们也是连续值。 目前,我的数据集的形状为X:[4000,20],Y:[4000]。 给定d个功能的10个先前输入,我想使用TensorFlow训练LSTM来预测Y值(回归),但是我在TensorFl

  • 问题内容: 因此,我一直在努力了解在Tensorflow中出于训练目的导出经过训练的模型时,serving_input_fn()的主要任务是什么。网上有一些例子可以解释它,但是我在为自己定义它时遇到了问题。 我要解决的问题是一个回归问题,其中有29个输入和一个输出。是否有用于为此创建相应的服务输入功能的模板?如果我使用一类分类问题怎么办?服务输入功能是否需要更改,或者我可以使用相同的功能? 最后,

  • 问题内容: 我的训练数据的格式为(?,15)其中?是可变长度。 创建模型时,请指定以下内容: 我的训练数据的形状为(35730,?,15)。 在python中检查这个我得到: 输出:(35730,) 输出:(513,15) 当我尝试根据训练数据拟合模型时,出现ValueError: 我只能在单个样本上使用model.train_on_batch()来训练模型。 我该如何解决?似乎keras认为我的

  • 在之前的描述中,我们通常把机器学习模型和训练算法当作黑箱子来处理。如果你实践过前几章的一些示例,你惊奇的发现你可以优化回归系统,改进数字图像的分类器,你甚至可以零基础搭建一个垃圾邮件的分类器,但是你却对它们内部的工作流程一无所知。事实上,许多场合你都不需要知道这些黑箱子的内部有什么,干了什么。 然而,如果你对其内部的工作流程有一定了解的话,当面对一个机器学习任务时候,这些理论可以帮助你快速的找到恰

  • 在之前的描述中,我们通常把机器学习模型和训练算法当作黑箱子来处理。如果你实践过前几章的一些示例,你惊奇的发现你可以优化回归系统,改进数字图像的分类器,你甚至可以零基础搭建一个垃圾邮件的分类器,但是你却对它们内部的工作流程一无所知。事实上,许多场合你都不需要知道这些黑箱子的内部有什么,干了什么。 然而,如果你对其内部的工作流程有一定了解的话,当面对一个机器学习任务时候,这些理论可以帮助你快速的找到恰