簡體   English   中英

為文本分類的二進制分類創建 model 時出錯

[英]Error while creating a model for binary classification for text classification

代碼:

model = create_model()
model.compile(optimize=tf.keras.optimizers.Adam(learning_rate=2e-5),
              loss=tf.keras.losses.BinaryCrossentropy(),
              metrics=[tf.keras.metrics.BinaryAccuracy()])
model.summary()

錯誤:

TypeError                                 Traceback (most recent call last)
<ipython-input-58-cdba04f466b1> in <module>()
      2 model.compile(optimize=tf.keras.optimizers.Adam(learning_rate=2e-5),
      3               loss=tf.keras.losses.BinaryCrossentropy(),
----> 4               metrics=[tf.keras.metrics.BinaryAccuracy()])
      5 model.summary()

1 frames
/usr/local/lib/python3.7/dist-packages/keras/engine/training.py in _validate_compile(self, optimizer, metrics, **kwargs)
   2981     invalid_kwargs = set(kwargs) - {'sample_weight_mode'}
   2982     if invalid_kwargs:
-> 2983       raise TypeError('Invalid keyword argument(s) in `compile()`: '
   2984                       f'{(invalid_kwargs,)}. Valid keyword arguments include '
   2985                       '"cloning", "experimental_run_tf_function", "distribute",'

TypeError: Invalid keyword argument(s) in `compile()`: ({'optimize'},). Valid keyword arguments include "cloning", "experimental_run_tf_function", "distribute", "target_tensors", or "sample_weight_mode".

有人可以看看這個嗎? 這里構建一個 model 用於文本分類微調 BERT

我能夠使用示例代碼復制上述問題,如下所示

import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam


c = np.array([-40, -10, -0, 8, 15, 22, 38])
f = np.array([-40, 14, 32, 46, 59, 72, 100])

model = Sequential()
model.add(Dense(units=1,input_shape=(1,), activation='linear'))

model.compile(loss='mean_squared_error', optimize= Adam(0.1))

history = model.fit(c, f, epochs=5, verbose=0)

Output:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-659b944d282f> in <module>()
     12 model.add(Dense(units=1,input_shape=(1,), activation='linear'))
     13 
---> 14 model.compile(loss='mean_squared_error', optimize= Adam(0.1))
     15 
     16 history = model.fit(c, f, epochs=5, verbose=0)

1 frames
/usr/local/lib/python3.7/dist-packages/keras/engine/training.py in _validate_compile(self, optimizer, metrics, **kwargs)
   2981     invalid_kwargs = set(kwargs) - {'sample_weight_mode'}
   2982     if invalid_kwargs:
-> 2983       raise TypeError('Invalid keyword argument(s) in `compile()`: '
   2984                       f'{(invalid_kwargs,)}. Valid keyword arguments include '
   2985                       '"cloning", "experimental_run_tf_function", "distribute",'

TypeError: Invalid keyword argument(s) in `compile()`: ({'optimize'},). Valid keyword arguments include "cloning", "experimental_run_tf_function", "distribute", "target_tensors", or "sample_weight_mode".

固定代碼:

上面的 TypeError 很清楚,是打錯了,請把optimize改成optimizer如下圖

model.compile(loss='mean_squared_error', optimizer= Adam(0.1))

有關更多詳細信息,請找到要點以供參考。

暫無
暫無

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

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