Python 3.6+ 中的 f-string详细解释,利用print中还能输出函数变量值

在 Python 3.6+ 中,引入了 f-string(格式化字符串字面值),它是一种用于在字符串中嵌入表达式值的简洁、方便的方式。这种字符串以 fF 作为前缀,并在字符串中使用 {} 表达式来引用变量或表达式的值。

例如,使用 f-string 可以在字符串中插入变量、表达式等,而无需使用传统的字符串拼接或格式化方法。在你提到的例子中:

epoch = 1
num_epochs = 10
loss = 0.1234

print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')

这个 f-string 包含了三个表达式:

  1. {epoch+1}:计算 epoch+1 的值并插入字符串。
  2. {num_epochs}:直接插入 num_epochs 的值。
  3. {loss.item():.4f}:计算 loss.item() 的值并将其格式化为浮点数,保留小数点后四位。

f-string 之所以能够输出函数变量值,是因为它在字符串中使用 {} 表达式,这里的表达式可以是任意合法的 Python 表达式,包括函数调用。在这个例子中,loss.item() 是一个函数调用,它会返回一个值,而 f-string 会将这个值插入到字符串中。这样就避免了传统字符串拼接或格式化方法的繁琐,使代码更加简洁和可读。

print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}') 这行代码使用了 Python 3.6+ 中的 f-string,其中各个部分的含义如下:

  • f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}' 是一个字符串,其中 {} 是一个占位符,可以插入变量的值。

  • epoch+1 表示当前训练的轮次,epoch 是从0开始的,但是通常我们希望显示的轮次从1开始,所以加了1。

  • / 是一个分隔符,用于分隔当前轮次和总轮次。

  • num_epochs 是总的训练轮次。

  • loss.item() 获取当前批次的损失值,item() 是将 PyTorch 张量中的值转换为 Python 中的标量值。

  • :.4f 表示将损失值以浮点数的形式显示,并且保留小数点后四位。

所以,整体来说,这个 print 语句的作用是在每个训练轮次结束时输出当前轮次和对应的损失值。例如,可能输出类似于 Epoch [1/10], Loss: 0.1234,其中 1 是当前轮次,10 是总轮次,0.1234 是当前轮次的损失值。

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值