tensorflow transpose 예제

텐서플로우는 보폭을 지원하지 않으므로 트랜스포즈는 항목이 변조된 새 텐서를 반환합니다. Numpy 및 TensorFlow는 서로 다른 메모리 모델을 사용하므로 NumPy에서 전치하는 경우 배열의 데이터를 복사할 필요가 없는 반면, 텐서플로우에서는 항상 복사본이 필요합니다. 따라서 이 동작은 전적으로 예상됩니다. 대신 정적 그래프를 사용하는 것이 좋습니다. b = tf. 변수(tf.random_normal((10, 10, 100, 10, 10, 10, 10))) # 변수는 시간 op = tf.transpose (b, [3, 0, 1, 2, 4, 5])를 측정하는 동안 난수 생성을 피하기 위해 . 세션() sess.run(tf.global_variables_initializer)) %timeit sess.run(op) 좌분기(a, argsort(축))를 사용하여 축키워드 인수를 사용할 때 텐서의 전위를 반전시.됩니다. 따라서 입력, 필터링, 패딩 전략 및 보폭을 사용하여 행렬과 마스크를 구성할 수 있습니다. 그런 다음 행렬과 마스크를 사용하여 컨볼루션과 트랜스포지션을 모두 수행합니다. 마지막으로,이 매트릭스 / 마스크 접근 방식은 PyTorch와 TensorFlow와 동일한 결과를 생성한다는 것을 보여 : 나오키 시부야의 전치 된 컨볼루션에 대한 훌륭한 기사는이 튜토리얼과 마찬가지로이 주제를 더 잘 이해하는 데 도움이되었습니다.

예상 동작 tf.tranpose()는 트릭을 다시 형성할 필요 없이 빠여야 합니다(항상 적용되지는 않음). 또한 일부 트랜스포즈는 암시적입니다(예: tf.tensordot()에 의해 수행됩니다). 필드 백엔드를 “theano”, “tensorflow” 또는 “cntk”로 변경하기만 하면 다음에 Keras 코드를 실행할 때 새 구성을 사용합니다. numpy 트랜스포즈는 조정된 보폭을 가진 동일한 데이터의 새 뷰를 반환하기 때문에 메모리 효율적인 일정한 시간 연산입니다. 나는 파마가 치수를 통근하고 있다고 생각합니다. 예를 들어 파마=[0,2,1]은 dim_0 -> dim_0, dim_1 -> dim_2, dim_2 -> dim_1에 대한 짧습니다. 따라서 2D 텐서의 경우 perm=[1,0]은 행렬 전치일 뿐입니다. 이 질문에 대답합니까? 텐서플로우/텐서플로우/코어/커널/트랜스포즈_펑터_cpu.cc 관련 질문: 그래프 최적화 프로그램이 현재 전치 순서를 변경하여 시퀀스를 변경합니까? 큰 치수 텐서에서 전치를 수행하면 더 작은 텐서로 모양을 변경한 다음 (그러나 동등한 전치가 여전히 수행 될 수 있도록 치수)로 모양을 변경하면 최적화 프로그램이 저차원 텐서에서 수행되도록 최적화 프로그램이 재정렬합니까? 케라스에서는 “텐서플로우”, “테아노”, “cntk”보다 더 많은 백엔드를 로드할 수 있습니다.