저는 프로그래밍에 초보자입니다. 특히 tensorflow로 프로그래밍하는 것이 좋습니다. 나는 그것을 사용하는 것을 이해하기 위해 장난감 문제를 만들고있다. 그런 경우 나는 분모가 모든 클래스의 합이 아닌 샘플 된 클래스의 합계 인 softmax와 같은 함수를 만들고 싶습니다.tensorflow로 함수 구현하기
def my_softmax(X,W, num_of_samples):
K = 4
S = np.zeros(((np.dot(X,np.transpose(W))).shape))
for line in range(X.shape[0]):
XW = np.dot(X[line],np.transpose(W))
m = np.max(XW)
samples_sum = 0
for s in range(num_of_samples):
r = (randint(0,K-1))
samples_sum += np.exp(XW[r]- m)
S[line] = (np.exp(XW-m))/(samples_sum)
return S
이이 tensorflow에서 구현 될 수있는 방법 : 같은 NumPy와는 것 사용하여 파이썬에서
? 더 일반적으로 새로운 "사용자 지정"기능을 만들 수있는 방법이 있습니까?
감사를 참조하십시오. 나는 당신이 옳다고 생각하고 대신에 for 루프를 코딩하는 matrix/vector를 시도해야하지만, 프로그래밍에 익숙하지 않기 때문에 그렇게하는 방법을 생각할 수 없다. 어떻게하면 "for line in range (X.shape [0]) :"와 같은 피할 수 있습니까? 왜냐하면 나는 모든 라인마다 무작위 샘플을 가지고 다른 분모를 계산해야하기 때문이다. 혼란스러워! –
다음을 살펴보십시오. https://www.tensorflow.org/versions/r0.11/api_docs/python/nn.html#sampled_softmax_loss? 문서의 해당 함수 옆에있는 후보 샘플링 라이브러리 함수 중 일부는 여기에서도 도움이 될 수 있습니다. 소스가 어떻게 구현되는지 볼 수 있습니다. –