2016-07-05 8 views

答えて

1

これは私の作品:

x = tf.constant("Hello everyone") 

# Launch the default graph. 
with tf.Session() as sess: 
    print(tf.size(tf.string_split([x],"")).eval()) 
1

TensorFlowバージョン0.9のような機能はありません。ただし、tf.py_funcを使用して、TensorFlowテンソルで任意のPython関数を実行することができます。ここでTensorFlow文字列の長さを取得するための1つの方法は次のとおりです。

def string_length(t): 
    return tf.py_func(lambda p: [len(x) for x in p], [t], [tf.int64])[0] 

a = tf.constant(["Hello everyone"], tf.string) 
sess = tf.InteractiveSession() 
sess.run(string_length(a)) 
+0

あなたの答えもありがとう。私がその質問に挑戦したとき、それは大きな回避策でした。さて、 'tf.string_split'では、文字列の長さをTensorFlowで直接計算することができます。 – Ata

0
別の次善の選択肢が疎にあなたの文字列を変換することです

strings = ['Why hello','world','!'] 
chars = tf.string_split(strings,"") 

次に、各ライン上の最大指数を計算+1

line_number = chars.indices[:,0] 
line_position = chars.indices[:,1] 
lengths = tf.segment_max(data = line_position, 
         segment_ids = line_number) + 1 

with tf.Session() as sess: 
    print(lengths.eval()) 

[9 5 1] 
関連する問題