2016-07-06 4 views
1

차원의 3D 매트릭스가 있습니다 549x19x50 2D 매트릭스를 만들어야 549x950 매트릭스가됩니다.3D 매트릭스를 tensorflow를 사용하여 2D 매트릭스로 재구성

나는 지금까지 tensorflow를 사용하고 있습니다.

#data_3d is the 3D matrix 
data_2d = tf.reshape(data_3d,[549,-1]) 

이 프롬프트에 data_3d의 모든 값을 출력하고 나는 그것이 나에게 나가서 설명하자면 NameError

data_3d을 제공 data_2d에 액세스하려고 할 때 목록의 목록의 목록입니다. 텐서 (tensor) 또는 ndarray가 아닙니다. 목록에 대해이 작업을 수행 할 수 없다면 목록을 ndarrays로 쉽게 변환 할 수있는 방법이 있습니까? 사전에

감사합니다,

Bhashithe

+0

왜 Tensorflow인가? –

+0

tensorflow가있는 반복적 인 신경망을 사용해야합니다. 나는 지금 테스트 중이며 지금 당장 익숙하다. 다른 파이썬 라이브러리를 사용할 수 있습니다. @GalDreiman – Bhashithe

+0

답변을 살펴보면 간단한 예제로 numpy를 기반으로 답변을 게시 할 것입니다. –

답변

2

numpy를 사용하여이를 수행 할 수있는 간단한 방법이있다 :

import numpy as np 

data_3d = np.arange(27).reshape((3,3,3)) 
data_2d = data_3d.swapaxes(1,2).reshape(3,-1) 

OUPUT :

data_2d 

[0 3 6 1 4 7 2 5 8] 0 123, [10 12 15 10 13 16 11 14 17
[18 21 24 19 22 25 20 23 26]

print data_3d 

[[[0 1 2
[3 4 5]
[6 7 8]

[9 10 11
[12 13 14]
[15 16 17]

[[18 19 20]
[21 22 23]
[24 25 26]]]

: swapaxes(1,2) 여기에서 중요한 것은 - 당신은 당신이 교환 할 축을 정의 할 필요가있다.

+0

이것은 swapaxes() 없이도 작동했습니다. 나는 당신이 당신의 대답에 왜 swapaxes를 추가했는지 이해하지 못했습니다. – Bhashithe

+1

그래서 당신은 특별히 바꿀 축을 선택하고 바꿀뿐입니다. –

+0

이 좋습니다. 하지만 제 경우에는 스와핑이 필요하지 않았습니다. 그걸 알게되어 멋지다. 고마워! – Bhashithe

관련 문제