Feature y is not in features dictionary.

任务是拟合二输入线性函数y=x1+2*x2,先用TensorFlow读取csv文件,然后训练神经网络,代码如下:

import numpy as np

from keras.models import Sequential

from keras.layers import Dense

import functools

train_file_path = "./datas/二输入数据表.csv"

test_file_path = "./datas/二输入测试数据表.csv"

LABEL_COLUMN = 'y'

import tensorflow as tf

OUTPUT = 'y'

def get_dataset(file_path):

    dataset = tf.data.experimental.make_csv_dataset(

    file_path,

    batch_size=4,

    label_name=OUTPUT,

    num_epochs=1,

    ignore_errors=True)

    return dataset

raw_train_data = get_dataset(train_file_path)

raw_test_data = get_dataset(test_file_path)

examples,labels = next(iter(raw_train_data))

print("EXAMPLES: \n",examples,"\n")

print("LABELS: \n",labels)

def process_continuous_data(mean,data):

    data = tf.cast(data,tf.float32) * 1/(2*mean)

    return tf.reshape(data,[-1,1])

MEANS = {

    'x1' : 7.149044577,

    'x2' : 13.07613598,

    'y' : 33.30131655

}

numerical_columns = []

for feature in MEANS.keys():

    num_col = tf.feature_column.numeric_column(

    feature,normalizer_fn=functools.partial(process_continuous_data,MEANS[feature]))

    numerical_columns.append(num_col)

numerical_columns

preprocessing_layer = tf.keras.layers.DenseFeatures(numerical_columns)

model = Sequential([

    preprocessing_layer,

    tf.keras.layers.Dense(4,activation='relu'),

    tf.keras.layers.Dense(1)

]

)

 

model.compile(optimizer = 'rmsprop',loss="mse",metrics=['mae'])

model.fit(raw_train_data,epochs=20)

 

 

报错情况:

https://img-ask.csdnimg.cn/upload/1624504196490.png?x-oss-process=image/auto-orient,1/resize,w_320,m_lfit