학습의 기본 작동 깊이 mxnet

에서 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))

 

추천

출처www.cnblogs.com/xiaochi/p/12608205.html