1

안녕하세요 저는 tensorflow를 처음 사용하고 있습니다. 그래서 저는이 4 개의 행렬을 곱하는 작업을했습니다. 나는 그것을 할 수 있었지만 지금은 (16,8)과 (8,4) 곱셈에서 (16,4) 출력을 취하고 모든 출력에서 ​​Logistics 함수를 적용하도록 요청 받고 있습니다. 그런 다음 모양 (16,4)의이 새로운 행렬에 (4,2) 행렬을 곱하십시오. 이 (16,2) 출력을 가져 와서 물류 기능을 적용하십시오. 이제이 새로운 (16,2) 행렬에 (2,1) 행렬을 곱하십시오. 행렬 조작으로이 모든 작업을 수행 할 수 있다고 가정합니다. 저는 선형 회귀를 이해하는 것만으로도 그것에 대해 어떻게 가는지 혼란 스럽습니다. 나는 그들이 비슷한지는 알고 있지만 그것을 적용하는 방법을 모르겠다. 어떤 팁 바랍니다. 아니, 나는 행렬을 사용하여 물류 기능에 대해 어떻게해야하는지 알 수 없기 때문에 내가 주어진 것보다 더 좋은 예를 원한다. 이것은 내가 지금까지tensorflow 로지스틱 회귀 행렬

import tensorflow as ts 
import numpy as np 
import os 
# AWESOME SAUCE WARNING MESSAGE WAS GETTING ANNOYING 
os.environ['TF_CPP_MIN_LOG_LEVEL']='2' #to avoid warnings about compilation 

# for different matrix asked to multiply with 
# use random for random numbers in each matrix 
m1 = np.random.rand(16,8) 
m2 = np.random.rand(8,4) 
m3 = np.random.rand(4,2) 
m4 = np.random.rand(2,1) 


# using matmul to mulitply could use @ or dot() but using tensorflow 
c = ts.matmul(m1,m2) 
d = ts.matmul(c,m3) 
e = ts.matmul(d, m4) 

#attempting to create log regression 
arf = ts.Variable(m1,name = "ARF") 



with ts.Session() as s: 
    r1 = s.run(c) 
    print("M1 * M2: \n",r1) 

    r2 = s.run(d) 
    print("Result of C * M3: \n ", r2) 

    r3 = s.run(e) 
    print("Result of D * M4: \n",r3) 

    #learned i cant reshape just that easily 
    #r4 = ts.reshape(m1,(16,4)) 
    #print("Result of New M1: \n", r4) 

답변

0

난 당신이 올바른 생각을 가지고 생각을 가지고있는 것입니다. 물류 함수는 단지 1/(1 + exp(-z))입니다. 여기서 z는 적용하고자하는 행렬입니다. 이를 염두에두면 다음과 같이 간단히 할 수 있습니다.

logistic = 1/(1 + ts.exp(-c)) 

입력 요소에 맞게 요소를 적용합니다. 결과는 그이 :

lg = s.run(logistic) 
    print("Result of logistic function \n ", lg) 

... 매트릭스에게 그런 다음 곱셈의 나머지 부분에 갈 수있는 모든 값이 0과 1 사이 c (16,4)와 같은 크기로 인쇄됩니다 임무가 요구하고있다.

+0

와우 그것은 아주 간단했습니다. 마크에게 진심으로 감사드립니다. – sox