はい。がある。テンソルの階数を変更する必要がなければ、それは非常に簡単です。
tf.pad()
はテンソル付きの規則的なpythonリストを受け入れます。埋め込みの形式は、その次元の各辺にどのくらいの余白をかけるかのペアのリストです。
あなたは便利な機能に、これを一般化したい場合は
t = tf.constant([[1, 2], [3, 4]])
paddings = [[0, 0], [0, 4-tf.shape(t)[0]]]
out = tf.pad(t, paddings, 'CONSTANT', constant_values=-1)
sess.run(out)
# gives:
# array([[ 1, 2, -1, -1],
# [ 3, 4, -1, -1]], dtype=int32)
、あなたのような何かができる:max_in_dims
は、本質的に、出力の所望の形状である
def pad_up_to(t, max_in_dims, constant_values):
s = tf.shape(t)
paddings = [[0, m-s[i]] for (i,m) in enumerate(max_in_dims)]
return tf.pad(t, paddings, 'CONSTANT', constant_values=constant_values)
。 注:任意の次元でt
より厳密に小さい形状を指定すると、この関数は失敗します。
あなたはそれが好きで使用することができます:
t = tf.constant([[1, 2], [3, 4]]) # shape = [2, 2]
t_padded = pad_up_to(t, [2, 4], -1) # shape = [2, 4], padded with -1s