DeprecationWarning
このエラーはscipy.sinが非推奨(deprecated)であり、将来のSciPyバージョンでは削除される可能性があることを示しています。 例えば、Python でtransformerのPositional encodingのコードです。
%matplotlib inline import numpy as np from scipy import sin, cos max_length = 20 # 時間次元 dmodel = 50 # 単語埋め込みの次元 PE_mat = np.zeros((max_length, dmodel)) for pos in range(max_length): for i in range(dmodel): if i%2==0: #偶数番目 PE = sin(pos/10000**(2*i/dmodel)) else: #奇数番目 PE = cos(pos/10000**(2*i/dmodel)) PE_mat[pos, i] = PE
この時、次のようなWarningが発生します。
: DeprecationWarning: scipy.sin is deprecated and will be removed in SciPy 2.0.0, use numpy.sin instead PE = sin(pos/10000**(2*i/dmodel)) DeprecationWarning: scipy.cos is deprecated and will be removed in SciPy 2.0.0, use numpy.cos instead PE = cos(pos/10000**(2*i/dmodel))
対応策
対応策は簡単です。PE = np.sin(pos / 10000 ** (2 * i / dmodel))
のようにnumpyを使ってあげれば解決です。
深層学習教科書 ディープラーニング G検定(ジェネラリスト)公式テキスト 第2版 (EXAMPRESS) [ 一般社団法人日本ディープラーニング協会 ] 価格:3,080円 |