TypeError: not all arguments converted during string formatting
Reason: python的两种格式化输出方式混用了
python有两种格式化输出方式:
- Python2.6 之前,使用与 C 中 sprintf 函数一样的语法。
基本语法是将一个值插入到一个有字符串格式符 %s 的字符串中。
e.g.
print("[%d/%d], Train Loss = %.4f Valid Loss = %.4f %s"%(epoch, max_epochs + 1, train_loss, valid_loss, datetime.now()))
- Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
e.g.
print("[{}/{}], Train Loss = {:.4f} Valid Loss = {:.4f} {}".format(epoch, max_epochs + 1, train_loss, valid_loss, datetime.now()))