2017-12-22 20 views
0

교육용 이미지를 생성하는 데이터 생성기가 있습니다. 이 파이썬 데이터 생성기를 사용하여 Tensorflow 모델에 데이터를 공급하고 싶지만 생성기를 Tensorflow 텐서로 변환하는 방법을 알 수 없습니다. 나는 Keras의 fit_generator() 함수와 비슷한 것을 찾고있다.파이썬 데이터 생성기를 Tensorflow 텐서로 변환하는 방법은 무엇입니까?

감사합니다.

+1

무엇이 오류가 있습니까? 그리고 무엇을 시도 했습니까? fit_generator 인수로 _generator_를 취하십시오. 왜 다른 것이 필요합니까? – putonspectacles

답변

2

tf.data.Dataset.from_generator() 메서드는 파이썬 생성기를 생성자의 각 연속 요소를 평가하는 tf.Tensor 개체로 변환하는 방법을 제공합니다.

의 당신이 (목록 또는 NumPy와 배열 만 선택적으로 생성 할 수있는) 튜플을 생성하는 간단한 발전기 있다고 가정 해 봅시다 : A와 다음,

def g(): 
    yield 1, 10.0, "foo" 
    yield 2, 20.0, "bar" 
    yield 3, 30.0, "baz" 

당신은 tf.data.Dataset 먼저 발전기를 변환 할 tf.data API를 사용할 수 있습니다 tf.data.Iterator, 그리고 마지막으로 tf.Tensor의 튜플에 이른다.

dataset = tf.data.Dataset.from_generator(g, (tf.int32, tf.float32, tf.string)) 

iterator = dataset.make_one_shot_iterator() 

int_tensor, float_tensor, str_tensor = iterator.get_next() 

그런 다음 사용할 수 있습니다 TensorFlow 모델에 대한 입력으로 int_tensor, float_tensorstr_tensor. 자세한 아이디어는 tf.data programmer's guide을 참조하십시오.

0

순수 Tensorflow를 사용할 때 데이터를 공급하기 위해 발전기를 사용할 필요가 없습니다. 그리고 Keras를 사용할 때 Tensorflow 스타일로 데이터를 공급해야하는 이유는 Keras에 맞는 함수()가 있다는 것입니다.