能否直接获取浮点型预测结果而非指数型结果?(附多标签分类代码)
解决多标签分类预测结果显示为指数型的问题
首先明确:你用sigmoid激活输出的结果本身就是浮点型,控制台显示的指数形式(比如1.23e-04)只是numpy对极小/极大浮点数的默认打印格式,并非结果类型不是浮点型。
要让输出以常规浮点格式显示,有几种实用方法:
方法一:修改numpy全局打印选项
在打印前设置numpy禁用科学计数法,同时指定显示的小数位数:import numpy as np # 禁用科学计数法,保留4位小数 np.set_printoptions(suppress=True, precision=4) print('prediction', ys_)方法二:手动格式化每个预测值
遍历预测结果,将每个数值转为指定格式的字符串:formatted_preds = [f"{val:.4f}" for val in ys_] print('prediction', formatted_preds)方法三:转换为原生浮点数列表并格式化
先把numpy数组转为Python原生浮点数列表,再配合四舍五入控制显示:float_preds = ys_.tolist() print('prediction', [round(val, 4) for val in float_preds])
补充说明:sigmoid函数的输出范围是(0,1),当数值非常接近0或1时,numpy会自动切换到科学计数法显示,但本质还是浮点数,以上方法只是调整了显示形式,不会改变数值本身。
内容的提问来源于stack exchange,提问作者Dhruvi Raval
相关产品推荐
相关产品推荐

