2017-06-20 11 views
0

私はエラー「例外TypeError:タイプの非整数でシーケンスを掛けることができない 『そうだとして乗算することができません。は、floatを使用する必要がありますが、シーケンスは、結果

coef[i + 1] = coef[i + 1] + learning_rate * error * t_pred * (1 - t_pred) * row[i] 
次の行にフロート』を

learning_rateをintに変更できません。これはフロートでなければなりません。この制限を念頭に置いて、このエラーには回避策がありますか?

+0

NumPy配列をどこかで使用する必要があるリストを使用しているようです。 – user2357112

+0

これらの変数のうちの1つはリストですが、どちらですか?浮動小数点数でリストを掛け合わせるとどうなると思いますか?あなたは実際には、[最小、完全で、かつ検証可能な例](https://stackoverflow.com/help/mcve) – FamousJameous

+0

を投稿する必要がありますあなたの変数の1つはnon-intの型ですので、エラーが発生します – haifzhan

答えて

0

私は推測しているあなたのrow[i]あなたは、フロートに掛けるので、ちょうど乗算前に整数にすべてを回すことができない配列である。

あなたの変数の
coef[i + 1] += int(learning_rate * error * t_pred * (1 - t_pred)) * row[i] 
0

一つは、非int型です、それらの演算を行うと、エラーが発生します。

は1.0を乗算し、ここで使用した文字列1を例を参照してください:

>>> "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)

関連する問題