训练ML模型时遇TypeError:无法将0.8转为int64类型EagerTensor
解决model.fit训练时的TypeError问题
错误原因:steps_per_epoch和validation_steps必须传入整数类型参数,你通过train_len/20、val_len/20得到了浮点数(比如报错中的0.8),无法转换为要求的int64类型张量。
解决方法:
- 使用整数除法替代普通除法,直接得到整数结果:
将train_len/20改为train_len // 20,val_len/20改为val_len // 20 - 或者用
int()强制转换浮点数为整数:int(train_len/20)、int(val_len/20)(注意:小数部分会被直接截断,若结果为0需调整计算逻辑)
修改后的代码示例:
history = model.fit(train_ds, steps_per_epoch=train_len // 20, validation_data=val_ds, validation_steps=val_len // 20, epochs=50, verbose=1, callbacks=[cp_callback] )
内容的提问来源于stack exchange,提问作者NX Developer
相关产品推荐
相关产品推荐

