2017-10-01 1 views
1

이미지에 존재하거나 존재하지 않는 작은 개체를 감지하는 이진 이미지 분류 작업을 위해 CNN을 디자인하려고합니다. 이미지는 크기가 512x512 (이미 2048x2048에서 dowmsampled) 인 그레이 스케일 (서명되지 않은 짧은 이미지)이며, 교육 및 테스트를 위해 수천 개의 이미지가 있습니다.CNN 매개 변수 추정

CNN을 사용하여 처음으로 작업을 수행 할 때 ~ 80 %의 정확도를 달성 할 수 있기를 바랍니다. 일반적인 CNN 디자인 방법에 대해 알고 싶습니다. 내 목표를 달성 할 수있는 기회.

내 구체적인 질문은 다음과 같습니다

  1. 어떻게 회선 층과 완전히 연결된 레이어 많은 사용해야합니까?

  2. 각 회선 계층에는 몇 개의 기능 맵이 있고 각 완전 연결 계층에는 몇 개의 노드가 있습니까?

  3. 각 회선 레이어의 필터 크기는 얼마나됩니까? 나는 TensorFlow 백엔드 Keras를 사용하여 CNN, 내 컴퓨터의 사양을 구현하기 위해 노력하고있어

은 8 인텔 제온 CPU를 3.5 GHz의 @; 32 GB 메모리; 2 엔비디아 GPU : GeForce GTX 980 및 Quadro K4200

이러한 하드웨어 및 소프트웨어와 함께 교육의 계산 시간을 알고 싶습니다. 구체적으로,

신기원에서 위에서 언급 한 1000 개의 이미지와 (일반적으로) ~ 80 %의 정확도를 달성하는 데 필요한 에포크의 수를 계산하는 데 얼마나 오래 걸리나요?

일반적인 계산 시간을 알고 싶다면 그 이유를 제대로 설정해야합니다.

희망 첫 번째 게시물에 너무 많은 질문을하지 않았습니다.

+1

당신은 신경망의 매개 변수에 대해 물어,이 질문에 대한 "일반적으로"답변, 특히 다른 데이터 세트와 함께 없습니다. 실험을 통해 최상의 매개 변수를 찾아야합니다. – malioboro

+0

@malioboro OK, 일반적인 대답이 없으면 경험에서 빛을 비출 수 있습니까? – mjk

+0

Stanford CS231n 과정에서 CNN 매개 변수를 설정하는 방법에 대한 일반적인 조언을 얻을 수 있습니다. –

답변

1

케라가 VGG16, VGG19, InceptionV3 및 기타와 같이 해당 작업에 사용할 수있는 기존 모델 중 하나를 선택하면 매우 잘 돌아갑니다. https://keras.io/applications/.

당신은 그것들을 실험 해보고, 다른 매개 변수를 시도해 볼 수 있습니다. 여기저기서 약간 조정할 수 있습니다. 클래스가 하나 뿐이므로 더 작은 버전을 사용해보십시오.

모든 코드가 https://github.com/fchollet/keras/tree/master/keras/applications

속도에서 찾을 수 있습니다 매우 매우 상대적이다. 각 설치 방법, 각 드라이버, 각 버전, 각 운영 체제가 실제로 하드웨어 기능을 적절하게 또는 완전히 사용할 수 있기 때문에 속도를 말하는 것이 불가능합니다.

하지만 사양이 좋으면 모든 것이 잘 설정되어 있으면 꽤 빨라야합니다.

+0

답장을 보내 주셔서 감사합니다, 댄. "꽤 빠르다"고 말할 때, 당신은 한 시대 당 몇 분의 몇 초를 의미합니까? 내가 묻는 이유는 내가 모든 것을 올바르게 설정하는 것이다. – mjk

+0

이미지의 크기는 얼마입니까? 1 개의 큰 이미지 (1200x1800) 또는 픽셀 단위로 비슷한 영역을 다루는 여러 개의 작은 이미지가있는 "배치 당"몇 초가 걸릴 것입니다. 적어도 Tesla K80을 사용하여 Google VM에서 달성 한 것입니다. 그러나 그것은 모델의 크기에 많이 의존합니다. 내 모델에는 약 10 백만 개의 학습 가능한 매개 변수가있었습니다. –