Próbuję pobrać znaki w tensorze ciągu, aby przewidzieć poziom postaci. Podstawowymi prawdami są słowa, w których każdy znak ma id w słowniku. Mam tensor odpowiadający długości struny.Tensorflow - Odzyskiwanie każdego znaku w tensorze ciągów znaków
Teraz muszę pobrać każdy znak w tensorze ciągu. Po sprawdzeniu pokrewnych postów, proste pobieranie może wyglądać następująco. Przykład ciąg jest „To”
a= tf.constant("This",shape=[1])
b=tf.string_split(a,delimiter="").values #Sparse tensor has the values array which stores characters
Teraz chcę zrobić łańcuch z przestrzeni pomiędzy literami „To” tj „T h i s”. Potrzebuję odstępów na początku i na końcu. Jak to zrobić?
Próbowałem iterację bohaterów jak poniżej
for i in xrange(b.dense_shape[1]): # b.dense_shape[1] has the length of string
x=b.values[i]
Ale pętla liczy liczbę całkowitą zamiast tensora.
Każdy pomysł na wykonanie powyższych zadań? Nie mogłem znaleźć żadnej dokumentacji związanej z tym (oprócz funkcji tf.string_split). Wszelkie sugestie są mile widziane. Dzięki
Właściwie mój problem nie jest iteracyjne nad tensora raczej dostać każdy znak. Nie mogę użyć eval() tutaj, ponieważ potrzebuję znaków w postaci tensorów. Moim głównym zadaniem jest uzyskanie tensora napisowego z wstawionymi odstępami między oryginalnym ciągiem znaków. Moim pomysłem jest dodanie naprzemiennie każdego naprężenia ze spacjami, aby uzyskać pożądany tensor. Ale nie jestem pewien, jak to zrobić. –
Zadanie jest łatwe z drugim podejściem. Możesz to zrobić w następujący sposób: 'tf.string_split (tf.map_fn (lambda i: i +" ", b), delimiter =" ").", Co oznacza, że dodajesz spację na końcu każdej litery, a następnie ponownie -wyświetli wynikowy tensor. – garciparedes
Działa jak urok. Dziękuję Ci –