2017-11-30 22 views
0

그래서 어떤 가중치도없는 맞춤 레이어가 있습니다. 첫 번째 단계에서 Kers의 입력 텐서를 조작하는 함수를 구현하려고했습니다. 그러나 나는 여러 가지 이유로 성공하지 못했습니다. 내 두 번째 접근 방식은 numpy 연산을 사용하여 함수를 구현하는 것이 었습니다. 구현하고있는 사용자 정의 계층에 내 이해에서부터 가중치가 없기 때문에 백 프로퍼 그 레이션이 필요하지 않기 때문에 numpy 연산을 사용할 수 있습니다. 가중치가 없지, 그렇지?Keras Tensortype에서 사용자 정의 레이어에 대한 수배 배열로 전환하는 방법은 무엇입니까?

Keras.backend.variable(value = output) 

그래서 주요 아이디어는, 배열을 NumPy와로 변환, 텐서 소요 사용자 층을 구현 NumPy와로에서 작동하는 것입니다 : 그리고, 난 그냥있는 텐서 내 층의 출력을 변환하는 것 그런 다음 출력을 텐서로 변환합니다. 문제는 numpy 작업으로 조작 할 수 있도록 내 레이어의 입력 텐서를 numpy 배열로 변환하기 위해 .eval()을 사용할 수없는 것 같습니다.

누구든지이 문제를 해결할 수 있습니까?

+1

음 ...이 레이어 앞에 학습 가능한 레이어가없는 경우를 제외하고는 백 프로 퍼 게이트가 필요합니다. –

답변

0

Daniel Möller가 언급 한 것처럼 Keras는 에서까지 역 전파 할 수 있어야 이전 계층의 그라디언트를 계산할 수 있습니다. 이러한 이유로 레이어가 차별화 될 수 있어야합니다.

Kerg 조작 만 사용할 수있는 것과 같은 이유는 autograd와 자동 차별화 될 수 있기 때문입니다. 레이어가 단순하다면 사용자 정의 레이어를 빠르게 구현할 수있는 Lambda layer을 살펴보십시오.

Keras 백엔드 기능은 많은 유스 케이스를 다루어야하기 때문에 레이어를 통해 레이어를 작성하는 경우 여기에 다른 질문을 게시 할 수 있습니다.

희망이 도움이됩니다.

+0

감사합니다! 이전의 레이어는 참으로 훈련 가능합니다. 그러나 내 레이어는 점수와 상자를 사용하고 점수에 따라 최고의 N 개의 상자를 생성합니다. Keras는 여전히 그것을 전파해야합니까? – Tassou

+0

예, 항상 백 프로게이션해야합니다. 구현에 대한 도움이 필요하면 다른 질문을 게시하고 이미 가지고있는 것을 보여주십시오. – Coolness

+0

여기에서 새로운 질문과 저의 작업을 찾으십시오. https://stackoverflow.com/questions/47583221/switching-from-numpy-operations-to-backend-functions-with-keras-gone-wrong – Tassou