[恐らくn4ingogdgdgさんがやりたかったこと]
Python3
1def initialize_with_zeros(dim):
2 w = np.zeros((dim,1)) # 自分で打った
3 b = np.zeros(1) # 自分で打った
4 return w,b
5
6dim = 2
7w,b = initialize_with_zeros(dim)
8
9print(type(b)) # np.ndarray
10print(type(b[0])) # np.float64
11
12# assert type(b) == float
13assert type(b[0]) == np.float64
14
15print("w=" + str(w))
16print("b=" + str(b))
[説明]
[bの中身]
assert type(b) == float
でコケるのは、bがfloatではないからです。
print(b)をするとわかりますが、中身はinitialize_with_zeros
のb、つまり、
b = np.zeros(1)
です。
np.zeros()
は引数で指定したshapeのゼロが詰まったarray、この場合[0.]
を返します。
もう感づいておられると思いますが、[0.]
はarrayであってfloatではありません。
[bのtype]
確かに中身は浮動小数点ですので、arrayとしてのbではなくて、arrayとしてのbの「0番目の要素」、つまり、assert type(b[0]) == float
とすればうまくいきそうです。
私はそう思いやってみましたがダメでした。
というのもprint(type(b[0]))
はPython標準のfloat
ではなくnp.float64
だからです。
ですので、最終的にassert type(b[0]) == np.float64
にしましょう、に至ります。