2016-12-01 13 views
17

Po przetestowaniu TensorFlow r0.12 (CPU) zainstalowanego w systemie Windows 10, stwierdziłem, że wydrukowany ciąg znaków zawsze ma literę "b" na końcu. Wydruk Pythona jest normalny. Nie rozumiem powodu, więc przyszedłem tutaj po pomoc. Kod jest w następujący sposób:Druk ciąg stałej jest zawsze dołączany za pomocą 'b' inTensorFlow

>>>import tensorflow as tf 
>>>hello = tf.constant('Hello, TensorFlow!') 
>>>sess = tf.Session() 
>>>print(sess.run(hello)) 
b'Hello, TensorFlow!' 
+2

Opcja 'B' prefiks jest wskazanie ciągów bajtów zamiast unicode ciągi. Wartość domyślna zależy od wersji pythona: python2 'str' jest bajtami, ale python3' str' jest unikodem. – alexpeits

+0

Krótko: to obiekt 'bytes'. – TigerhawkT3

Odpowiedz

19

Zastosowanie sess.run(hello).decode() ponieważ jest to bytestring. decode Metoda zwróci ciąg znaków.

Wyciągu druku musi wyglądać

print(sess.run(hello).decode()) 
+3

Obiekt 'Tensor' nie ma atrybutu' decode', więc miałeś na myśli 'print (sess.run (hello) .decode())'? To działało dla mnie. – ProfPlum

+5

dlaczego nie jest to wymienione w [Sprawdź poprawność instalacji tensorflow] (https://www.tensorflow.org/install/install_windows#validate_your_installation)!? (Używam 3.6.2, który powinien używać unicode 'str') –

+0

Tak, zawsze jest to bummer, gdy próbujesz czegoś nowego, a rzeczy nie idą w parze. Nawet małe ostrzeżenia mogą być naprawdę denerwujące. Mam nadzieję, że naprawią to na stronie internetowej. – deeJ

Powiązane problemy