簡體   English   中英

將 Python 的 Keras 用於神經網絡時的類型錯誤

[英]Type Error When Using Python's Keras for Neural Network

我正在嘗試使用神經網絡來預測房屋的價格。 這是數據集頂部的樣子:

    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.values
X = dataset[:,1:8]
Y = dataset[:,0]

from sklearn import preprocessing
from sklearn.model_selection import train_test_split
min_max_scaler = preprocessing.MinMaxScaler()
X_scale = min_max_scaler.fit_transform(X)
X_scale

X_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 Sequential
from keras.layers import Dense

model = 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'),
])

希望能幫助到你! 如果您有更多問題,請告訴我!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM