繁体   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