tfds build시 발생한 AssertionError: Unrecognized instruction format (또는 Unrecognized split format ) 원인과 해결방법입니다.
2021. 11. 12 최초작성
File "/home/webnautes/miniconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow_datasets/core/tfrecords_reader.py", line 519, in _str_to_relative_instruction
raise AssertionError('Unrecognized instruction format: %s' % spec)
AssertionError: Unrecognized instruction format: test.normal
split 이름에 . 이 포함되어서 발생한 에러였습니다.
. 외에도 허용하지 않는 다른 문자가 더 있을 수 있습니다.
관련 코드는 tfrecords_reader.py의 511번째 줄에 있는 코드입니다. 최신버전의 코드라 에러 메시지 출력하는 부분이 좀 다릅니다.
_SUB_SPEC_RE의 리턴값에 의해서 에러값이 출력될지 여부가 결정됩니다.
https://github.com/tensorflow/datasets/blob/master/tensorflow_datasets/core/tfrecords_reader.py
def _str_to_relative_instruction(spec: str) -> 'AbstractSplit': """Returns ReadInstruction for given string.""" # <split_name>[<split_selector>] (e.g. `train[54%:]`) res = _SUB_SPEC_RE.match(spec) err_msg = (f'Unrecognized split format: {spec!r}. See format at ' 'https://www.tensorflow.org/datasets/splits') if not res: raise ValueError(err_msg) split_name = res.group('split_name') split_selector = res.group('split_selector') |
.이 포함된 문자열에 _SUB_SPEC_RE의 리턴값을 테스트해보면 None가 출력되는걸 볼 수 있습니다.
import re _SUB_SPEC_RE = re.compile( r""" ^ (?P<split>[\w-]+) (\[ ((?P<from>-?\d+) (?P<from_pct>%)?)? : ((?P<to>-?\d+) (?P<to_pct>%)?)? \])? $ """, re.X) print(_SUB_SPEC_RE.match('test.normal')) # None |
'Deep Learning & Machine Learning > 강좌&예제 코드' 카테고리의 다른 글
Tensorflow - tf.data.Dataset.from_generator 예제 (0) | 2021.11.19 |
---|---|
텐서플로우 콜백함수( Tensorflow Callbacks ) - ModelCheckpoint, ReduceLROnPlateau, EarlyStopping (0) | 2021.11.17 |
Tensorflow 디버깅 정보 메시지 안보이게 하기 (0) | 2021.09.14 |
Tensorflow Dataset의 window 메소드 사용법 (0) | 2021.09.14 |
LSTM 레이어 사용시 cuDNN 관련 에러 나는 경우 해결방법 (0) | 2021.09.09 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!