Как сохранить значение веса в ноль в определенном месте с использованием анано или лазаньи?

Я – человек из анано и лазань.

У меня проблема с переменной длиной входной матрицы.

то есть)

x1 = [0, 1, 3] x2 = [1, 2] matrix_embedding = [ [ 0.1, 0.2, 0.3], [ 0.4, 0.5, 0.6], [ 0.2, 0.3, 0.5], [ 0.5, 0.6, 0.7], ] matrix_embedding[x1] = [ [ 0.1, 0.2, 0.3], [ 0.4, 0.5, 0.6], [ 0.5, 0.6, 0.7] ] matrix_embedding[x2] = [ [ 0.4, 0.5, 0.6], [ 0.2, 0.3, 0.5], ] 

Итак, я пытаюсь использовать дополнение.

 matrix_padding_embedding = [ [ 0.1, 0.2, 0.3], [ 0.4, 0.5, 0.6], [ 0.2, 0.3, 0.5], [ 0.5, 0.6, 0.7], [ 0.0, 0.0, 0.0] ] x1 = [0, 1, 3] x2 = [1, 2, -1] matrix_embedding[x1] = [ [ 0.1, 0.2, 0.3], [ 0.4, 0.5, 0.6], [ 0.5, 0.6, 0.7] ] matrix_embedding[x2] = [ [ 0.4, 0.5, 0.6], [ 0.2, 0.3, 0.5], [ 0.0, 0.0, 0.0] ] 

Но после обработки, anano обновляет параметры matrix_padding_embedding, поэтому matrix_padding_embedding [-1] больше не равно 0.

Как сохранить значение веса в ноль в matrix_padding_embedding [-1]?

Или существуют ли другие способы решения переменной длины?

    One Solution collect form web for “Как сохранить значение веса в ноль в определенном месте с использованием анано или лазаньи?”

    вы можете создать дополненную матрицу, объединив две матрицы, например,

     import theano as the import theano.tensor as ten import numpy as np matrix_embedding = the.shared(np.asarray([[0.1, 0.2, 0.3], [0.4, 0.5, 0.6], [0.2, 0.3, 0.5], [0.5, 0.6, 0.7]])) matrix_padding_embedding = ten.concatenate((matrix_embedding, ten.zeros((1, 3)))) x = ten.lvector() y = ten.sum(matrix_padding_embedding[x]) grad = the.grad(y, matrix_embedding) fn = the.function([x], [matrix_padding_embedding, grad]) x2 = [1, 2, -1] p, g = fn(x2) print p print g 

    результаты

     # [[ 0.1 0.2 0.3] # [ 0.4 0.5 0.6] # [ 0.2 0.3 0.5] # [ 0.5 0.6 0.7] # [ 0. 0. 0. ]] # # [[ 0. 0. 0.] # [ 1. 1. 1.] # [ 1. 1. 1.] # [ 0. 0. 0.]] 
    Python - лучший язык программирования в мире.