• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

Tensorflow c++과 subclassing에 관해 질문드립니다.

23.01.22 18:45 작성 조회수 291

0

선생님 안녕하세요! 새해 복 많이 받으세요!!

올려주신 강의 정말 감사드립니다.

저는 선생님 강의를 파이썬 머신러닝 부터 컴퓨터 비전, CNN을 통해 혼자 딥러닝을 공부하고 있는 전자공학 전공 학생입니다.

앞으로의 진로와 공부 방향에 관해 몇가지 질문을 드리고 싶습니다.

현재 선배들 중 제조업(반도체,자동차, 배터리)에 종사하는 선배 중 딥러닝쪽 업무를 하는 선배들로 부터 요즘은 모델링을 파이썬으로 하지만 C++을 이용해서 많이 진행한다고 하고, Tensorflow를 더 잘 사용하기 위해서는 subclassing을 통한 모델을 만들 수 있어야 한다고 들었습니다. (https://www.tensorflow.org/guide/keras/custom_layers_and_models)

하지만 인터넷으로 검색을 해봐도 Tensorflow와 C++을 연동해서 사용하는 경우에 대한 정보를 얻기 힘들고 subclassing 또한 정보를 얻기 어려웠습니다. 혹시 관련하여 알고계신 정보가 있다면 공부방법과 강의계획이 있으신지 여쭤봐도 될까요?

답변 1

답변을 작성해보세요.

1

안녕하십니까,

조운형님도 새해 복 많이 받으십시요.

음. 파이썬으로 텐서플로우를 잘 활용하시기만 해도 충분하실것 같습니다. 텐서플로우는 파이썬과 CUDA interface module로 되어 있는데 CUDA가 C++로 작성되어 있습니다. 텐서플로우의 딥러닝 파이썬 API는 실제로는 CUDA API를 호출하지만 거의 대부분의 경우에 CUDA를 직접 다룰일은 없습니다.

다만 전자공학과이시니 CUDA를 기반으로 소형 디바이스와 인터페이스하는 C++ 모듈을 만드실 수도 있겠지만, 해당 분야는 너무 전문화된 분야 입니다(제 생각으로 분야 자체가 많이 다릅니다)

따라서 파이썬 기반의 텐서플로우만 익히셔도 충분하며(사실 이것도 시간이 많이 필요 합니다 ^^), 추후에 보다 전문 영역인 AI 반도체등에 관심이 있으시다면 C++로 CUDA API를 배우는데 시간을 투자하시면 될 것 같습니다.

그리고 말씀하신 하위 클래스는 알아 놓으시면 도움이 됩니다. 텐서플로우는 여러가지 유형의 Layer를 제공하는데, 텐서플로우가 제공하지 않는 custom layer를 본인이 직접 만들고자 할때 이 하위클래스(서브 클래스)를 유용하게 사용할 수 있습니다. 보통은 Researcher들이 여러 다양한 layer들을 스스로 적용해 보고자 할 때 이 하위 클래스를 통해 customization을 적용합니다.

하지만 당장은 하위 클래스를 모르셔도 됩니다. 어느 정도 딥러닝 기반을 닦아 놓으신 이후에 customized된 Advanced한 모델을 스스로 생성하고자 할 때 공부하셔도 충분합니다.

감사합니다.