В моем пользовательском слое keras я пытаюсь получить внутреннее произведение двух матриц одного размера и сохранить их в одномерном массиве.И тогда 1D-тензор должен быть сложен как 2D-тензор.Фрагмент кода:
def call(self, x):
print(x.shape)
mat1_shape =K.int_shape(self.kernel1)
print(mat1_shape)
Ash1_unpacked = tf.unstack(x,axis=0) # defaults to axis 0,
#returns a list of tensors
kernel1_unpacked = tf.unstack(self.kernel1,axis=2)
for t in Ash1_unpacked:
B3= dot_product(t,kernel1_unpacked)
print(B3)
B4=tf.concat(B3,axis=1)
print(B4)
return B4
Здесь Ash1_unpacked представляет собой список из 10 тензоров размером 20 x 20 каждый.Kernel1_unpacked представляет собой список из 4 тензоров размером 20 x20 каждый.Операция, которая должна быть выполнена, состоит в том, чтобы взять 1 тензор из Ash1_unpacked за один раз и получить внутренний продукт со всеми четырьмя тензорными элементами Kernel1_unpacked, таким образом давая (1,4) тензор для каждого входного тензора.Я не могу объединить тензоры.пожалуйста, помогите.
код точки_продукта-
def dot_product(t,kernel1_unpacked):
processed_sample = []# this will be the list of processe
for r in kernel1_unpacked:
result_tensor = K.sum(r * t , keepdims=True)
processed_sample.append(result_tensor)
probs = tf.concat(processed_sample,axis=0)
return probs