numpyで値の型を指定したつもりが
TFRecordでたくさんの浮動小数点数を扱う
↑これに関連するnumpyの話。
numpyで配列を作る時に空の配列を用意してそこに値を入れていく、ってのをやろうとしたんだけど、この場合、最初の空の配列をどうするのか?いくつかあるみたいでこれが定番!というのがよくわからなかったんだが、とりあえずzerosを使うことにした。それ自体はいいんだと思うが、、、
↓これを実行すると
[ 1. 2.]
<class 'numpy.float64'> ←な、なんですとー?!
↑こんな結果になる。
zerosのところで型指定して32bitの値が入るんだろうと思いきや、appendで入る値は64bitのままになってる。
これになかなか気付かず、TensorFlowのTFRecordで作成したデータが意図通りに読み込めずにうんうんと悩んでた。
arr = np.append(arr , np.float32(a))
のようにキャストすればいけた、、、けど、じゃあzerosでの指定はなんやねん?!
Python 3.5.2 :: Anaconda 4.1.1 (x86_64)
↑これに関連するnumpyの話。
numpyで配列を作る時に空の配列を用意してそこに値を入れていく、ってのをやろうとしたんだけど、この場合、最初の空の配列をどうするのか?いくつかあるみたいでこれが定番!というのがよくわからなかったんだが、とりあえずzerosを使うことにした。それ自体はいいんだと思うが、、、
↓これを実行すると
{ a = 1. b = 2. arr = np.zeros([0] , dtype=np.float32) arr = np.append(arr, a) arr = np.append(arr, b) print(type(a)) print(arr) print(type(arr[0])) }<class ‘float’>
[ 1. 2.]
<class 'numpy.float64'> ←な、なんですとー?!
↑こんな結果になる。
zerosのところで型指定して32bitの値が入るんだろうと思いきや、appendで入る値は64bitのままになってる。
これになかなか気付かず、TensorFlowのTFRecordで作成したデータが意図通りに読み込めずにうんうんと悩んでた。
arr = np.append(arr , np.float32(a))
のようにキャストすればいけた、、、けど、じゃあzerosでの指定はなんやねん?!
Python 3.5.2 :: Anaconda 4.1.1 (x86_64)
スポンサーサイト
<< TFRecordで多次元配列を扱う TopPage TFRecordでたくさんの浮動小数点数を扱う >>
トラックバック
トラックバックURL
https://ringsbell.blog.fc2.com/tb.php/1108-3f64312b
https://ringsbell.blog.fc2.com/tb.php/1108-3f64312b