2014-08-29 5 views
0

이 비용 함수의 등고선 도표를 얻지 못하는 원인을 알아낼 수 없습니다. 많은 시행 착오 후, 나는군요 : 나는 J를 인쇄하는 경우파이썬 루프와 matplotlib로 등고선 플롯

ValueError: zero-size array to reduction operation minimum which has no identity 

그것이 나에게 어떤 가치, 유모의 전체 단지 100 × 100 배열을 제공하지 않습니다. 그게 그 이유야? J는 비용 가치로 가득해야합니다. 맞습니까? 어떤 도움을 주셔서 감사합니다. J 그냥 nan의 경우

X,y,ComputeCost = defined earlier and 90% sure not the problem 
theta_zero = np.linspace(-10,10,100) 
theta_one = np.linspace(-1,4,100) 
L,Q = np.meshgrid(theta_zero,theta_one) 
J = np.zeros((len(theta_zero),len(theta_one))) 

for i in range(0,len(theta_zero)): 
    for j in range(0,len(theta_one)): 
     t = DataFrame([theta_zero[i],theta_one[j]]) 
     J[i,j] = ComputeCost(X,y,t) 

plt.contour(L,Q,J) 

답변

1

, 다음 문제는 J하지contour() 전화 를 생성하고있는 방법이다.

+0

감사합니다. 나는 다음 질문이 왜 J가 나노의 전체로 나를 떠나는 for loop인가? 즉, 코드는 윤곽선을 그릴 때 오류가 발생하기 전에 한 줄에 하나씩 모든 값을 뱉어냅니다. 왜 그들이 J에 저장되지 않는지 확신하지 못합니다. – user2891518

+0

중간 변수를 사용한다면 non-nan에서 나온 것입니까? 예 : 'foo = ComputeCost (X, y, t)''print foo''J [i, j] = foo''foo'가 non가 아닌 것으로 출력하면, 역시 손실이 발생합니다. – aardvark

+0

다른 변수 Z를 만들고이를 100X100 배열로 설정하면 J [i, j]와 같이 루프에서 Z [i, j]와 동일한 오류가 발생합니다. – user2891518

관련 문제