tf.unstack 예제

(tf.concat, tf.stack):(tf.unstack, tf.split):a=tf.constant([[1,2,3],[3,4,5]])#shape(2). 3… 마스크는 1<<1 == 2입니다. 이 작업은 입력 배수를 여러 번 복제하여 새 텐서를 만듭니다. 출력 텐서의 i`th 차원에는 input.dims(i) * multiples[i] 요소가 있으며 입력 값은 `i`th 차원을 따라 여러 번 복제됩니다. 예를 들어[2]씩 [b c d]를 바둑판으로 바둑판으로 배열하면 [b c d a b c d]가 생성됩니다. RNN에 대한 입력으로 시퀀스가 필요하기 때문에 텐서를 언스택하려고합니다. tf.unstack을 올바르게 사용하지 못하게하는 가변 시퀀스 길이를 사용하고 있습니다. tf.stack():수입텐서플로우아스트파=tf.reshape(tf.range(0,12),[3,4])b=tf.reshape(t......

[사진 = 수입물수입눔의탑=tf.... 한슈베스트: 수입물량증가파tfimportnumpyasnpt=np.random.randint(1,10,(3,5))ustack1=tf.unstack(t, 축=1)우리... :`아랭크R&gt;0텐서토르토: 위의 예에서 볼 수 있듯이 UESTC_201722의 2D 마스크 텐서를 지정한 dtype으로 캐스팅합니다. 한 가지 주의해야 할 점은 작업자가 양자화 프로세스 중에 요청된 최소 값과 최대 값을 약간 조정할 수 있으므로 항상 추가 계산을 위한 범위로 출력 포트를 사용해야 한다는 것입니다. 예를 들어 요청된 최소값과 최대값이 같으면 작은 엡실론 값으로 구분되어 잘못 형성된 양자화된 버퍼가 생성되지 않도록 합니다. 그렇지 않으면 모든 양자화된 값이 동일한 float 값에 매핑되는 버퍼로 끝날 수 있으며, 이로 인해 추가 계산을 수행해야 하는 작업에 문제가 발생할 수 있습니다. 예를 들어 foo[3:5,...,4:5] 모양 10x3x10 텐서의 텐서[3:5,:,,4:5] 및 foo[3:5,...]는 foo[3:5:5::::::::::::]와 같습니다. 나는 이것이 다른 곳에서 대답 될 수 있다고 생각하지만, 여기에 대답이 있습니다.

추론할 수 없는 차원에서는 tf.unstack을 사용할 수 없습니다. 이는 텐서플로우가 텐서의 변환을 정의하는 계산 그래프로 설계되었기 때문입니다. 각 작업은 노드를 추가하고 각 텐서노드는 노드 사이의 에지입니다. 텐서를 tf.unstack하면 여러 개의 새 텐서(가장자리)가 생성됩니다. tf.unstack 작업에서 만든 새 텐서 수가 정의되지 않은 경우 계산 그래프에는 정의되지 않은 수의 가장자리가 있습니다. 그래프에 여러 개의 새 가장자리를 추가하지 않는 작업은 유추된 차원(대부분의 작업)이 있는 입력 텐서를 가질 수 있습니다. static_rnn의 입력은 [batch_size, n_입력]의 모양이어야하므로 축 = 1을 따라 스택 을 해제해야합니다 . , n_입력] 이전 예제와 마찬가지로. 아래는 텐서플로우의 설명에서 인용된 것입니다: tf.stack(tf.stack), tf.unstack()의 ,,,,이에 따라, 리관동 이 연산은 단일 요소에 배치 치수를 추가하려는 경우에 유용하다. 예를 들어 셰이프[높이, 너비, 채널]의 단일 이미지가 있는 경우 expand_dims(이미지, 0)가 있는 1개의 이미지일괄 처리로 만들어 모양을 [1, 높이, 너비, 채널]으로 만들 수 있습니다. 이 작업을 해결하려면 배치 된 작업의 경우에 유용한 두 가지 선택 사항이 있습니다.

 
Mobile Site

Follow Us On Facebook Follow Us On Twitter Follow Us On Google + Follow Us On LinkedIn Follow Us On You Tube Copyright 2019 © All Rights Reserved. Powered by - ARE Network Solutions