복붙노트

[PYTHON] TensorFlow에서 텐서를 수적으로 배열로 변환하려면 어떻게해야합니까?

PYTHON

TensorFlow에서 텐서를 수적으로 배열로 변환하려면 어떻게해야합니까?

파이썬 바인딩을 사용하여 Tensorflow를 사용할 때 텐서를 numpy 배열로 변환하는 방법은 무엇입니까?

해결법

  1. ==============================

    1.Session.run 또는 eval에 의해 반환되는 텐서는 모두 NumPy 배열입니다.

    Session.run 또는 eval에 의해 반환되는 텐서는 모두 NumPy 배열입니다.

    >>> print(type(tf.Session().run(tf.constant([1,2,3]))))
    <class 'numpy.ndarray'>
    

    또는:

    >>> sess = tf.InteractiveSession()
    >>> print(type(tf.constant([1,2,3]).eval()))
    <class 'numpy.ndarray'>
    

    또는, 동등하게 :

    >>> sess = tf.Session()
    >>> with sess.as_default():
    >>>    print(type(tf.constant([1,2,3]).eval()))
    <class 'numpy.ndarray'>
    

    편집 : 어떤 텐서 Session.run에 의해 반환 된 또는 eval () NumPy 배열입니다. SparseTensors는 예를 들어 SparseTensorValue로 반환됩니다.

    >>> print(type(tf.Session().run(tf.SparseTensor([[0, 0]],[1],[1,2]))))
    <class 'tensorflow.python.framework.sparse_tensor.SparseTensorValue'>
    
  2. ==============================

    2.텐서에서 numpy 배열로 다시 변환하려면 변환 된 텐서에서 .eval ()을 간단히 수행하면됩니다.

    텐서에서 numpy 배열로 다시 변환하려면 변환 된 텐서에서 .eval ()을 간단히 수행하면됩니다.

  3. ==============================

    3.당신은 다음을해야합니다 :

    당신은 다음을해야합니다 :

    암호:

    import tensorflow as tf
    import matplotlib.pyplot as plt
    import PIL
    
    ...
    
    image_tensor = <your decoded image tensor>
    jpeg_bin_tensor = tf.image.encode_jpeg(image_tensor)
    
    with tf.Session() as sess:
        # display encoded back to image data
        jpeg_bin = sess.run(jpeg_bin_tensor)
        jpeg_str = StringIO.StringIO(jpeg_bin)
        jpeg_image = PIL.Image.open(jpeg_str)
        plt.imshow(jpeg_image)
    

    이것은 나를 위해 일했다. 당신은 ipython 노트북에서 그것을 시도 할 수 있습니다. 다음 줄을 추가하는 것을 잊지 마십시오.

    %matplotlib inline
    
  4. ==============================

    4.어쩌면이 방법을 시도해 볼 수 있습니다.

    어쩌면이 방법을 시도해 볼 수 있습니다.

    import tensorflow as tf
    W1 = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
    init = tf.global_variables_initializer()
    sess = tf.Session()
    sess.run(init)
    array = W1.eval(sess)
    print (array)
    
  5. ==============================

    5.나는 cleverhans 라이브러리 / 튜토리얼에서 얻은 (득립자) 이미지를 나타내는 텐서의 특정한 경우에 텐서 -> ndarray 변환을 직면하고 해결했습니다.

    나는 cleverhans 라이브러리 / 튜토리얼에서 얻은 (득립자) 이미지를 나타내는 텐서의 특정한 경우에 텐서 -> ndarray 변환을 직면하고 해결했습니다.

    내 질문 / 답변 (여기)이 다른 경우에도 도움이 될 수 있다고 생각합니다.

    나는 TensorFlow에 익숙하지 않다. 내 경험적 결론이다.

    tensor.eval () 메서드는 성공하기 위해 입력 자리 표시 자의 값을 필요로 할 수도 있습니다. Tensor는 출력 값을 반환하기 위해 입력 값 (feed_dict에 제공됨)이 필요한 함수처럼 작동합니다.

    array_out = tensor.eval(session=sess, feed_dict={x: x_input})
    

    필자의 경우 자리 표시 자 이름은 x이지만 입력 된 자리 표시 자의 올바른 이름을 찾아야한다고 가정합니다. x_input은 입력 데이터를 포함하는 스칼라 값 또는 배열입니다.

    제 경우에는 sess도 제공해야했습니다.

    필자의 예제는 matplotlib 이미지 시각화 부분도 다루지 만, 이것은 구약입니다.

  6. from https://stackoverflow.com/questions/34097281/how-can-i-convert-a-tensor-into-a-numpy-array-in-tensorflow by cc-by-sa and MIT license