에서 mxnet 수입 차
만들기 벡터
# 행 벡터 생성 (12 인 X = nd.arange를 ) 전단 (X)를 #를 출력 X 사이즈의 인쇄 (x.shape) # 형상 벡터 X를 변경하는 (3,4) X- = x.reshape (3,4 ) 인쇄 (X-) 은 Y = x.reshape. (3, -1 ) 인쇄 합니다 (Y) #는 각 요소는 0, 형상 (2,3,4) 텐서 생성 Z = nd.zeros ((3, . 4 )) 인쇄 합니다 (Z) # 리스트에 의해 지정된 각 요소의 값 생성 NDArray X2 = nd.array ([2,1,4,3] , [1,2,3,4], [4 , 3,2,1 ]) 전단 (AN X2) # NDArray의 각 요소에 대하여 무작위로 생성 된 값 X3 nd.random.normal = (0,1, 모양 = (3,4 )) 프린트 (X3)
데이터 조작
인쇄 (X- + 는 Y) # 눌러 곱셈 인쇄 (X- * 는 Y) #의 요소 분할 인쇄 (X- / 은 Y) # 눌러 소자 지수화 할 인쇄 (Y.exp ()) # DOT 행렬 곱셈 인쇄 (nd.dot (X- , YT)) #의 매트릭스 연결 # 행 연결된 인쇄 (nd.concat (X-는 Y, 중국식 = 0)) #에 열 접속 프린트 . (nd.concat (X-는 Y = 어둡게 1 )) # X - ==는 Y 인쇄 - (X == 는 Y) #의 X.sum의 인쇄 (X.sum ()) # 우리가 함수 결과를 asscalar 수는 파이썬에서 스칼라로 변환됩니다. 하위 ⾯ 예 위의 L2 놈 결과에서 실시 예 X #⼀ 샘플은 단일 요소 NDArray이지만, 최종 결과는 스칼라 파이썬로 변환. 인쇄 () (. X.norm ()를 asscalar)
방송 메커니즘
'' ' 에 의해 두 가지 다른 형태 NDArray 때 소자 동작 와이드 멀티 캐스트 (브로드 캐스트) 메커니즘이 트리거 될 수있다 : 처음 두 NDArray 소자의 적절한 형상 복사 동작 후의 요소와 동일. '' = nd.arange. (3) .reshape ((3,1 )) B = nd.arange (2) .reshape ((1,2 )) 프린트 (A) 프린트 (B) '' ' 버젼 및 B 3 ⾏ 1 1 ⾏ 2 행렬, A + B,이어서, 제 1 프레임 열의 세 요소 전체 폭 브로드 캐스트 계산한다 번째 쇼트 컬럼 (복사), 제 샷 B에 ⾏ 와이드 두 가지 요소는 두 번째 샷 세 번째 ⾏ ⾏에 (복사) 방송된다. 따라서, 수 개의 매트릭스 ⾏ 2 3 원소 첨가에 의해. '' ' 출력 (A + B) #의 인덱스 ' ' 예는 3- ⾏ ⾏ ⼀ 인덱스 2 매트릭스 각각은 각각 0, 1 및 2 열 인덱스 0 및 1이다. '' ' 인쇄 (X-) 이 전단 (X- [. 1 :. 3 ]) ' '' 이러한 매트릭스 ⾏ 컬럼 인덱스 및 재 할당을위한 요소로서 액세스 NDArray 필요에 지정된 개별 요소의 위치 '' X- [ 1,2] =. 9 '' ' 촬영 ⼀ 소자 부와, 재 할당 . 각 열 소자 (1)의 다음, 우리 ⾏ ⼀ 인덱스 예 하위 메뉴 화면이 재 할당인지 '' ' [X- = 12이다 : 2, 1] 인쇄 (X-)
메모리 오버 헤드 작업
'' ' 요소 부분 ⼀ 촬영 및 재 할당. 1 당 다음, 우리 ⾏ 인덱스에 대한 예 하위 메뉴 화면 ⼀ 열 요소의 재 할당은 우리가 인덱스 교체 ⾏에 도입 ⾯ 사용하여 이전 할 수있는 특정 메모리 결과를 지정합니다. 다음 실시 예를위한 서브 메뉴 화면이 먼저 zeros_like 의해 만들어 Z.로 표시된 요소는 동일하고 NDArray 0이다 Y 자형 '' 는 Z = Y.zeros_like () 이전 = ID합니다 (Z) 는 Z [:] = + X- 는 Y 인쇄 (ID합니다 (Z) == 전) '' 사실 예에서는 X + Y에 개방 산출 결과를 저장하는 임시 기억하고 대응하는 메모리에 복사 Z. 이 경우 임시 메모리 오버 헤드를 피하려고, 우리는 매개 변수 함수의 이름에서 연산자를 사용할 수 있습니다. '' Nd.elemwise_add (X는 Y, OUT = 는 Z) 인쇄 (ID합니다 (Z) == 전)는 '' 그 프로그램 X의 값 않는 경우 사용을 복사하지, 우리는를 사용하여 X [:] = X + Y 또는 X + Y = 작업 메모리 오버 헤드를 감소시키기 ''ID (X) X + = Y의 잉크 (ID (X) == 전)
NDArray와 NumPy와 상호
오기 NumPy와 NP AS의 # NDArray 예 예에 NumPy와에 P = np.ones ((2,3 )) D = nd.array (P) 이 전단 (P) 이 전단 (D) # NumPy와 예 들어간 NDArray 인스턴스 D = D.asnumpy () 인쇄 ( " ================== " ) 인쇄 (유형의 (D))