python - ValueError: Layersequential_16 需要 1 个输入,但它接收到 8 个输入张量
问题描述
我有多个 csv 输入并尝试测试神经网络。我在 cvs (211583x8) 中有 8 个功能。我得到“ValueError:Layersequential_16 需要 1 个输入,但它接收到 8 个输入张量。” 谁能帮我解决这个错误?
train_dataset = tf.data.experimental.make_csv_dataset(
file_pattern = train_file_names,
batch_size=10, num_epochs=1,
num_parallel_reads=20,
shuffle_buffer_size=10000)
validation_dataset = tf.data.experimental.make_csv_dataset(
file_pattern = validation_file_names,
batch_size=10, num_epochs=1,
num_parallel_reads=20,
shuffle_buffer_size=10000)
test_dataset = tf.data.experimental.make_csv_dataset(
file_pattern = test_file_names,
batch_size=10, num_epochs=1,
num_parallel_reads=20,
shuffle_buffer_size=10000)
model = tf.keras.Sequential()
model.add(layers.Dense(8, activation="relu",input_shape=(1, 7) ))
model.add(layers.Dense(8, activation="relu",input_shape=(1, 7)))
model.add(layers.Dense(8, activation="softmax",input_shape=(1, 7)))
model.add(layers.Dense(1))
model.summary()
model.fit(train_dataset, validation_data = validation_dataset,
validation_steps = validation_steps, epochs = 10)
解决方案
添加具有正确输入形状的输入。
import tensorflow as tf
model = tf.keras.models.Sequential()
model.add(tf.keras.Input(shape=(8,)))
model.add(tf.keras.layers.Dense(8, input_shape = (1,7) , activation='relu'))
model.add(tf.keras.layers.Dense(8, input_shape = (1,7) , activation='relu'))
model.add(tf.keras.layers.Dense(8, input_shape = (1,7) , activation='softmax'))
model.add(tf.keras.layers.Dense(1))
model.output_shape
推荐阅读
- php - @ 中的空格在链接中提及用户名和小写字母
- uwp - 设置 MinDate 和 MaxDate 时的 UWP CalendarDatePicker 问题 - Windows 10 - 1903+
- java - Android:如何在 ImageView 旋转后裁剪图像?
- c# - 字段“操作”无需赋值即可获得价值
- reactjs - React-intl:如果不存在其他语言的特定味精,如何提供默认语言?
- sql-server - SQL Server-分组依据
- python - 单击按钮后如何更新变量的值?
- c++ - 部分排序期间成员函数模板的原始类型是什么
- javascript - slick-carousel 没有错误,但 3 个元素的滑块的外观已损坏
- javascript - 如何检查文本是否缺少某个字符?