Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

model.save 的问题 #246

Closed
ZeKunZhang1998 opened this issue Nov 5, 2020 · 16 comments
Closed

model.save 的问题 #246

ZeKunZhang1998 opened this issue Nov 5, 2020 · 16 comments

Comments

@ZeKunZhang1998
Copy link

提问时请尽可能提供如下信息:

基本信息

  • 你使用的操作系统:
  • 你使用的Python版本: 3
  • 你使用的Tensorflow版本: 1.14.0-gpu
  • 你使用的Keras版本: 2.3.1
  • 你使用的bert4keras版本: 0.9.1
  • 你使用纯keras还是tf.keras: import keras
  • 你加载的预训练模型: roberta预训练

核心代码

# 请在此处贴上你的核心代码。
# 请尽量只保留关键部分,不要无脑贴全部代码。
----> 1 model.save('./best_.weight')

输出信息

TypeError: a bytes-like object is required, not 'str'# 请在此处贴上你的调试输出


### 自我尝试
不管什么问题,请先尝试自行解决,“万般努力”之下仍然无法解决再来提问。此处请贴上你的努力过程。
@bojone
Copy link
Owner

bojone commented Nov 5, 2020

什么情况??什么操作下出现的错误??你认为谁有那么厉害猜到你写了什么代码?

@ZeKunZhang1998
Copy link
Author

ZeKunZhang1998 commented Nov 5, 2020

什么情况??什么操作下出现的错误??你认为谁有那么厉害猜到你写了什么代码?

from bert4keras.models import build_transformer_model
model = build_transformer_model(
config_path,
checkpoint_path,
)
output_layer = 'Transformer-%s-FeedForward-Norm' % (bert_layers - 1)
output = model.get_layer(output_layer).output
output = Dropout(0.5)(output)
output = Dense(num_labels)(output)
CRF = ConditionalRandomField(lr_multiplier=crf_lr_multiplier)
output = CRF(output)

model = Model(model.input, output)
model.summary()

model.compile(
loss=CRF.sparse_loss,
optimizer=Adam(learing_rate),
metrics=[CRF.sparse_accuracy]
)
model.save('./best_.weight')
这样构造的模型,训练的时候save失败报这个错,然后我尝试着在一开始就save也是报这个错。

@bojone
Copy link
Owner

bojone commented Nov 5, 2020

我重现了你的实验环境,并且同时还验证了其他组合,都没有出现save失败这个错误啊。。。

@ZeKunZhang1998
Copy link
Author

谢谢,我是在colab和天池的gpu测试的,你的bert4keras是什么版本呢?我之前也没有这个问题,这几天出来的。

@bojone
Copy link
Owner

bojone commented Nov 5, 2020

谢谢,我是在colab和天池的gpu测试的,你的bert4keras是什么版本呢?我之前也没有这个问题,这几天出来的。

我刚才测的bert4keras也是0.9.1版本的。如果你确认是这几天才出来的问题,那么你可以尝试逐步回退一下版本,确认一下哪个版本开始有问题,方便我定位错误。

@ZeKunZhang1998
Copy link
Author

你好,我之前是0.8.8

@ZeKunZhang1998
Copy link
Author

我0.8.8报错以后,来issue看就升级到0.9.1,结果还是,有没有可能跟解码方式有关系?python3

@ZeKunZhang1998
Copy link
Author

你好,我是用tf2.1之后,没有错误

@bojone
Copy link
Owner

bojone commented Nov 6, 2020

我0.8.8报错以后,来issue看就升级到0.9.1,结果还是,有没有可能跟解码方式有关系?python3

我也测了python3了,但也没发现错误。你可以逐渐回退一下版本,看看哪个版本开始报错?

现在我这里主要的问题就是我无法复现你说的错误。

@ZeKunZhang1998
Copy link
Author

我0.8.8报错以后,来issue看就升级到0.9.1,结果还是,有没有可能跟解码方式有关系?python3

我也测了python3了,但也没发现错误。你可以逐渐回退一下版本,看看哪个版本开始报错?

现在我这里主要的问题就是我无法复现你说的错误。

你好,我把tensorflow升级到2.1.0 就没有错误了

@bojone
Copy link
Owner

bojone commented Nov 9, 2020

我0.8.8报错以后,来issue看就升级到0.9.1,结果还是,有没有可能跟解码方式有关系?python3

我也测了python3了,但也没发现错误。你可以逐渐回退一下版本,看看哪个版本开始报错?
现在我这里主要的问题就是我无法复现你说的错误。

你好,我把tensorflow升级到2.1.0 就没有错误了

我知道你解决了。我的意思只是你方便的话就多提供一点信息给我debug~

@ZeKunZhang1998
Copy link
Author

我0.8.8报错以后,来issue看就升级到0.9.1,结果还是,有没有可能跟解码方式有关系?python3

我也测了python3了,但也没发现错误。你可以逐渐回退一下版本,看看哪个版本开始报错?
现在我这里主要的问题就是我无法复现你说的错误。

你好,我把tensorflow升级到2.1.0 就没有错误了

我知道你解决了。我的意思只是你方便的话就多提供一点信息给我debug~

我主要就看了以上几个包的版本

@lizizhong
Copy link

您好,我使用0.9.5的bert4keras, 1.14.0-gpu的tensorflow和2.3.1的Keras在预训练的def on_epoch_end(self, epoch, logs=None)函数中使用self.model.save(save_path)也会报相同的错误。

@bojone
Copy link
Owner

bojone commented Dec 15, 2020

您好,我使用0.9.5的bert4keras, 1.14.0-gpu的tensorflow和2.3.1的Keras在预训练的def on_epoch_end(self, epoch, logs=None)函数中使用self.model.save(save_path)也会报相同的错误。

能不能把详细错误贴出来。。。

@bojone
Copy link
Owner

bojone commented Dec 15, 2020

经确认,这是h5py的一个bug:h5py/h5py#1732

可以尝试升级或者回退一下h5py的版本。

@ZeKunZhang1998
Copy link
Author

ZeKunZhang1998 commented Dec 15, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants