2016-08-15 2 views
4

설명서 here에 이어 유니 코드 문자열로 기능을 만들려고합니다. 여기에 기능 생성 방법은 내가 strvalue을 포장하는 경우, 당연히표준 TensorFlow 형식의 유니 코드

File "/home/rklopfer/.virtualenvs/tf/local/lib/python2.7/site-packages/google/protobuf/internal/python_message.py", line 512, in init 
    copy.extend(field_value) 
    File "/home/rklopfer/.virtualenvs/tf/local/lib/python2.7/site-packages/google/protobuf/internal/containers.py", line 275, in extend 
    new_values = [self._type_checker.CheckValue(elem) for elem in elem_seq_iter] 
    File "/home/rklopfer/.virtualenvs/tf/local/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.py", line 108, in CheckValue 
    raise TypeError(message) 
TypeError: u'Gross' has type <type 'unicode'>, but expected one of: (<type 'str'>,) 

를 예외를 발생합니다

def _bytes_feature(value): 
    return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value])) 

이, 어떻게 생겼는지, 그것은 처음 실제 유니 코드 문자에 실패 마주 친다.

답변

4

바이트 목록 definition은 feature.proto에 있으며 유형은 repeated bytes입니다. 즉, 바이트 시퀀스 목록으로 변환 가능한 항목을 전달해야 함을 의미합니다.

unicode을 바이트 목록으로 바꾸는 방법은 여러 가지가 있으므로 모호성이 있습니다. 수동으로 대신 할 수 있습니다. IE, UTF-8 인코딩 사용

value.encode("utf-8") 
관련 문제