Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

tf.reshape

TensorFlow 1 versi Lihat sumber di GitHub

Membentuk ulang tensor a.

Digunakan di notebook

Digunakan dalam panduan Digunakan dalam tutorial

Mengingat tensor , operasi ini mengembalikan baru tf.Tensor yang memiliki nilai yang sama seperti tensor dalam urutan yang sama, kecuali dengan bentuk baru yang diberikan oleh shape .

t1 = [[1, 2, 3],
      [4, 5, 6]]
print(tf.shape(t1).numpy())
[2 3]
t2 = tf.reshape(t1, [6])
t2
<tf.Tensor: shape=(6,), dtype=int32,
  numpy=array([1, 2, 3, 4, 5, 6], dtype=int32)>
tf.reshape(t2, [3, 2])
<tf.Tensor: shape=(3, 2), dtype=int32, numpy=
  array([[1, 2],
         [3, 4],
         [5, 6]], dtype=int32)>

The tf.reshape tidak mengubah urutan atau jumlah elemen dalam tensor, dan sehingga dapat menggunakan kembali data yang mendasarinya penyangga. Hal ini membuat operasi independen cepat seberapa besar dari tensor itu adalah operasi.

tf.reshape([1, 2, 3], [2, 2])
Traceback (most recent call last):

InvalidArgumentError: Input to reshape is a tensor with 3 values, but the
requested shape has 4

Untuk bukannya menyusun ulang data untuk mengatur ulang dimensi tensor, lihat tf.transpose .

t = [[1, 2, 3],
     [4, 5, 6]]
tf.reshape(t, [3, 2]).numpy()
array([[1, 2],
       [3, 4],
       [5, 6]], dtype=int32)
tf.transpose(t, perm=[1, 0]).numpy()
array([[1, 4],
       [2, 5],
       [3, 6]], dtype=int32)

Jika salah satu komponen dari shape adalah nilai khusus -1, ukuran dimensi yang dihitung sehingga ukuran total tetap konstan. Secara khusus, sebuah shape dari [-1] merata ke 1-D. Paling banyak satu komponen dari shape bisa -1.

t = [[1, 2, 3],
     [4, 5, 6]]
tf.reshape(t, [-1])
<tf.Tensor: shape=(6,), dtype=int32,
  numpy=array([1, 2, 3, 4, 5, 6], dtype=int32)>
tf.reshape(t, [3, -1])
<tf.Tensor: shape=(3, 2), dtype=int32, numpy=
  array([[1, 2],
         [3, 4],
         [5, 6]], dtype=int32)>
tf.reshape(t, [-1, 2])
<tf.Tensor: shape=(3, 2), dtype=int32, numpy=
  array([[1, 2],
         [3, 4],
         [5, 6]], dtype=int32)>

tf.reshape(t, []) membentuk ulang sebuah tensor t dengan satu elemen skalar.

tf.reshape([7], []).numpy()
7

contoh:

t = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(tf.shape(t).numpy())
[9]
tf.reshape(t, [3, 3])
<tf.Tensor: shape=(3, 3), dtype=int32, numpy=
  array([[1, 2, 3],
         [4, 5, 6],
         [7, 8, 9]], dtype=int32)>
t = [[[1, 1], [2, 2]],
     [[3, 3], [4, 4]]]
print(tf.shape(t).numpy())
[2 2 2]
tf.reshape(t, [2, 4])
<tf.Tensor: shape=(2, 4), dtype=int32, numpy=
  array([[1, 1, 2, 2],
         [3, 3, 4, 4]], dtype=int32)>
t = [[[1, 1, 1],
      [2, 2, 2]],
     [[3, 3, 3],
      [4, 4, 4]],
     [[5, 5, 5],
      [6, 6, 6]]]
print(tf.shape(t).numpy())
[3 2 3]
# Pass '[-1]' to flatten 't'.
tf.reshape(t, [-1])
<tf.Tensor: shape=(18,), dtype=int32,
  numpy=array([1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6],
  dtype=int32)>
# -- Using -1 to infer the shape --
# Here -1 is inferred to be 9:
tf.reshape(t, [2, -1])
<tf.Tensor: shape=(2, 9), dtype=int32, numpy=
  array([[1, 1, 1, 2, 2, 2, 3, 3, 3],
         [4, 4, 4, 5, 5, 5, 6, 6, 6]], dtype=int32)>
# -1 is inferred to be 2:
tf.reshape(t, [-1, 9])
<tf.Tensor: shape=(2, 9), dtype=int32, numpy=
  array([[1, 1, 1, 2, 2, 2, 3, 3, 3],
         [4, 4, 4, 5, 5, 5, 6, 6, 6]], dtype=int32)>
# -1 is inferred to be 3:
tf.reshape(t, [ 2, -1, 3])
<tf.Tensor: shape=(2, 3, 3), dtype=int32, numpy=
  array([[[1, 1, 1],
          [2, 2, 2],
          [3, 3, 3]],
         [[4, 4, 4],
          [5, 5, 5],
          [6, 6, 6]]], dtype=int32)>

tensor Sebuah Tensor .
shape Sebuah Tensor . Harus menjadi salah satu jenis berikut: int32 , int64 . Mendefinisikan bentuk tensor output.
name string yang opsional. Sebuah nama untuk operasi.

Sebuah Tensor . Memiliki jenis yang sama seperti tensor .