2017-11-23 4 views
2

지난 몇 일간 데스크톱에서 Tensorflow로 이미지를 가져 오는 동안 많은 어려움을 겪었습니다. API을보고 online tutorials을 검색했지만 내 행운이 아주 적 었으며 읽은 내용 중 상당 부분을 이해할 수 없었습니다. 내가 거의 이해하지 못했던 것에서 이미지를 가져 오기위한 함수를 만드는 나의 시도는 당연히 성공적이지 못했다. 다음은 지금까지 내가 해왔 던 것입니다. 디버거를 통해 그것을 실행 한 후, 나는 프로그램이 첫 번째 라인에 붙어지고있다 나타납니다. Tensorflow API는 파일 패턴이나 1D 텐도의 파일 패턴을 전달해야한다고 말합니다. 내가 파일 패턴을 부여한 파일 경로가 아닌가?Tensorflow python을 통해 여러 이미지를 가져 오는 방법

def import_data(): 

    image_path = tf.train.match_filenames_once("C:\Users\ratno\Desktop\honest chaos\*.JPG") 
    filename_queue = tf.train.string_input_producer(image_path) 

    reader = tf.WholeFileReader() 

    _, content = reader.read(filename_queue) 
    image = tf.image.decode_jpeg(content, channels=1) 
    cropped_image = tf.image.resize_image_with_crop_or_pad(image, 3000, 3000) 
    reduced_image = tf.image.resize_images(cropped_image, [100, 100]) 
    modified_image = tf.transpose(tf.reshape(reduced_image, [10000, 1])) 

    return modified_image 

이 코드는 내 바탕 화면에 폴더에서 JPG를의 회전에 걸릴 그레이 스케일 JPG를에 RGB의 JPG를에서 변환 할 예정이다. 그 다음, 그레이 스케일 jpgs를 가져 와서 3000x3000 픽셀 크기로 자르고 tf.resize_images를 사용하여 100x100 픽셀 이미지로 줄입니다. 마지막으로, 모든 것을 1x10000 모양의 텐서 형식으로 반환합니다.

미리 감사드립니다. 코드의 다른 부분에 대한 제안 사항이 있으면 매우 감사 할 것입니다.

답변

0

session.run을 한 번 호출하여 여러 이미지를 읽으려면 여러 번 reader.read()를 호출하면됩니다. 또는 한 번 호출하여 처리가 완료되면 tf.train.batch를 사용하여 이미지의 미니 바를 가져올 수 있습니다.