我收到错误'TypeError:无法在以下行中将序列乘以'int'类型的非int:
coef[i + 1] = coef[i + 1] + learning_rate * error * t_pred * (1 - t_pred) * row[i]
我无法将learning_rate更改为int。它必须是一个浮点数。考虑到这个限制,是否有解决此错误的方法?
答案 0 :(得分:0)
我猜测你的row[i]
是你可以与浮点数相乘的序列,所以在乘法之前将所有内容都变为整数:
coef[i + 1] += int(learning_rate * error * t_pred * (1 - t_pred)) * row[i]
答案 1 :(得分:0)
你的一个变量是非int类型,当你对它们进行数学运算时,会抛出错误。
请参阅此处的示例,使用字符串1乘以1.0:
>>> "1" * 1.0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'
在进行数学运算之前,必须将所有数字字符串转换为整数或浮点数。您可以使用type()
检查变量类型,例如:type(learning_rate)