使用Python的Keras进行神经网络时出现类型错误

我正在尝试使用神经网络来预测房价。以下是数据集顶部的样貌:

    Price   Beds    SqFt    Built   Garage  FullBaths   HalfBaths   LotSqFt    485000  3       2336    2004    2       2.0          1.0        2178.0    430000  4       2106    2005    2       2.0          1.0        2178.0    445000  3       1410    1999    1       2.0          0.0        3049.0...

这是我编写神经网络的代码(使用Python的Keras)。

dataset = df.valuesX = dataset[:,1:8]Y = dataset[:,0]from sklearn import preprocessingfrom sklearn.model_selection import train_test_splitmin_max_scaler = preprocessing.MinMaxScaler()X_scale = min_max_scaler.fit_transform(X)X_scaleX_train, X_val_and_test, Y_train, Y_val_and_test = train_test_split(X_scale, Y, test_size=0.3)X_val, X_test, Y_val, Y_test = train_test_split(X_val_and_test, Y_val_and_test, test_size=0.5)print(X_train.shape, X_val.shape, X_test.shape, Y_train.shape, Y_val.shape, Y_test.shape)from keras.models import Sequentialfrom keras.layers import Densemodel = Sequential(    Dense(32, activation='relu', input_shape=(7,)),    Dense(1, activation='relu'))model.compile(optimizer='sgd',              loss='mse',              metrics=['mean_squared_error'])hist = model.fit(X_train, Y_train,          batch_size=32, epochs=100,          validation_data=(X_val, Y_val)) #Error here!model.evaluate(X_test, Y_test)[1] #Same Error here!

在运行hist =行和model.evaluate行时,我得到了相同的错误。以下是错误信息:

TypeError                                 Traceback (most recent call last)<ipython-input-19-522714a352ba> in <module>----> 1 hist = model.fit(X_train, Y_train,      2           batch_size=32, epochs=100,      3           validation_data=(X_val, Y_val))~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py in _method_wrapper(self, *args, **kwargs)    106   def _method_wrapper(self, *args, **kwargs):    107     if not self._in_multi_worker_mode():  # pylint: disable=protected-access--> 108       return method(self, *args, **kwargs)    109     110     # Running inside `run_distribute_coordinator` already....TypeError: in user code:...name_scope += '/'    TypeError: unsupported operand type(s) for +=: 'Dense' and 'str'

我不确定为什么会发生这种情况,因为当我在原始数据框上运行df.dtypes时,所有列都是整数或浮点数。


回答:

简单的修复!你似乎在模型构建中缺少了一个硬括号。试试这个:

model = Sequential([    Dense(32, activation='relu', input_shape=(7,)),    Dense(1, activation='relu'),])

希望这对你有帮助!如果你有更多问题,请告诉我!

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注