波士顿房价预测书上给的例程出现'utf-8' codec can't decode byte 0xd5 in position 140: invalid continuation byte错误
问题描述:
import tensorflow as tf
import pandas as pd
import tensorflow.feature_column as fc
from tensorflow.keras.datasets import boston_housing
(x_train,y_train),(x_test,y_test) = boston_housing.load_data()
features = ['CRIM','ZN',
'INDUS','CHAS','NOX','RM','AGE',
'DIS','RAD','TAX','PTRATIO','B','LSTAT']
x_train_df = pd.DataFrame(x_train, columns = features)
x_test_df = pd.DataFrame(x_test, columns = features)
y_train_df = pd.DataFrame(y_train,columns=['MEDV'])
y_test_df = pd.DataFrame(y_test,columns=['MEDV'])
x_train_df.head()
feature_columns = []
for feature_name in features:
feature_columns.append(fc.numeric_column(feature_name, dtype=tf.float32))
print(feature_columns)
def estimator_input_fn(df_data, df_label, epochs=20, shuffle=True, batch_size=64):
def input_function():
ds = tf.data.Dataset.from_tensor_slices((dict(df_data), df_label))
if shuffle:
ds = ds.shuffle(100)
ds = ds.batch(batch_size).repeat(epochs)
return ds
return input_function
train_input_fn = estimator_input_fn(x_train_df, y_train_df)
val_input_fn = estimator_input_fn(x_test_df, y_test_df, epochs=1, shuffle=False)
linear_est = tf.estimator.LinearRegressor(feature_columns=feature_columns, model_dir = 'logs/func/')
linear_est.train(train_input_fn, steps=100)
result = linear_est.evaluate(val_input_fn)
print(result)
还有tensorflow2.7警告这段怎么修改代码
答
这个是数据读取的编码问题,你看看py文件是不是utf-8编码,,警告信息只是版本变更导致某些函数方法的修改,你按提示调用新的函数方法就行了,比如你图中是让你使用