Я сталкиваюсь с ошибкой при использовании np.concatenate
. Код, который я использую:
def get_angles(pos, i, d_model):
angle_rates = 1 / np.power(10000, (2 * (i // 2)) / np.float32(d_model))
return pos * angle_rates
def positional_encoding(position, d_model):
angle_rads = get_angles(np.arange(position)[:, np.newaxis],
np.arange(d_model)[np.newaxis, :],
d_model)
sines = tf.math.sin(angle_rads[:, 0::2])
cosines = tf.math.cos(angle_rads[:, 1::2])
pos_encoding = np.concatenate([sines, cosines], axis=-1)
pos_encoding = pos_encoding[np.newaxis, ...]
return tf.cast(pos_encoding, dtype=tf.float32)
Строка кода, вызывающая проблемы, - это часть np.concatenate
в функции positional_encoding
. Когда программа попадает в эту часть, она выплевывает
ValueError: zero-dimensional arrays cannot be concatenated
но когда я проверяю размеры для sines
и cosines
, каждый из них имеет размеры (50, 25)
.
Есть ли что-то, чего мне не хватает при выполнении этих операций?
Спасибо.
Редактировать
position
= 50
d_model
= 512