es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

TensorFlow añadirá una dimensión ‘None’ a un tensor.

Soy nuevo en tf, no estoy seguro de si mi terminología es apropiada en el título. Básicamente vi un código de ejemplo como el siguiente que transpone un tensor y lo multiplica por una matriz de pesos.

embed_dim = xl.shape[-1]
w=tf.Variable(tf.random.truncated_normal(shape=(embed_dim,), stddev=0.01)) #(221)

`x1_transpose = tf.reshape(xl, [-1, 1, embed_dim]) #(None, 1, 221)
xlw = tf.tensordot(x1_transpose, w, axes=1) #(None, 1)


Me pregunto si puedo utilizar la función `tf.linalg.matmul` con algo como `tf.linalg.matmul(xl, w, transpose_a=True, transpose_b=False)` para lograr lo mismo. Siento que aquí necesito convertir o crear un `w` de forma `TensorShape([221, None])`, pero no estoy seguro de cómo.

xl.shape

TensorShape([None, 221])


`w=tf.Variable(tf.random.truncated_normal(shape=(embed_dim,), stddev=0.01)) >> TensorShape([221])

“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes usar tf.linalg.matmul para lograr el mismo efecto que el código de ejemplo. Sin embargo, tendrías que remodelar xl a una forma de TensorShape([None, 1, 221]) antes de usar tf.linalg.matmul. Aquí tienes un código de ejemplo:

    embed_dim = xl.shape[-1]
    w = tf.Variable(tf.random.truncated_normal(shape=(1, embed_dim), stddev=0.01)) #(1, 221)
    
    x1_reshape = tf.reshape(xl, [-1, 1, embed_dim]) #(None, 1, 221)
    x_lw = tf.linalg.matmul(x1_reshape, w, transpose_a=True)  #(None, 1, 1)
    x_lw = tf.squeeze(x_lw, axis=-1) #(None, 1)
    

    Ten en cuenta que necesitamos especificar transpose_a=True para transponer el primer tensor, y también necesitamos eliminar la última dimensión del tensor de resultado usando tf.squeeze para obtener una forma de TensorShape([None, 1]). El tensor w necesita tener una forma de TensorShape([1, 221]) para que coincida con las dimensiones de la multiplicación.

Comments are closed.