Saya memiliki kode berikut. Saya mengambil hasil prediksi satu gambar dan menyimpannya dalam array numpy tmp.

print(predictions.shape) # 14,14,512
tmp=np.zeros((0, 14, 14, 512))
for i in range(0, 1):
   tmp[i,:,:]=predictions[i,:]

Kesalahan diterima menjalankan kode di atas.

IndexError: index 0 is out of bounds for axis 0 with size 0
1
emaan daavis 18 अक्टूबर 2020, 19:57

1 उत्तर

सबसे बढ़िया उत्तर

Panggilan ke numpy.zeros() dengan tuple dimulai dengan nol hasil dalam array kosong.

>>> import numpy as np
>>> tmp = np.zeros((0, 14, 14, 512))
>>> tmp
array([], shape=(0, 14, 14, 512), dtype=float64)

Untuk menginisialisasi tmp dengan nol, Anda bisa melakukannya:

>>> tmp = np.zeros((14, 14, 512))
>>> tmp
array([[[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        ...,
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],
...

पूरा उदाहरण

import numpy as np

predictions = np.random.randint(9, size=(14 * 14 * 512)).reshape((14, 14, 512))
print(f"shape of predictions: {predictions.shape}")
tmp = np.zeros((14, 14, 512))

tmp[0,:,:] = predictions[0,:]
print(f"shape of tmp: {tmp.shape}")
print(f"tmp data:\n{tmp}")

उत्पादन

shape of predictions: (14, 14, 512)
shape of tmp: (14, 14, 512)
tmp data:
[[[0. 0. 8. ... 6. 8. 1.]
  [8. 6. 0. ... 4. 5. 3.]
  [7. 6. 2. ... 6. 7. 6.]
  ...
  [4. 2. 4. ... 1. 5. 8.]
  [4. 3. 8. ... 0. 5. 0.]
  [4. 5. 3. ... 0. 0. 1.]]

 [[0. 0. 0. ... 0. 0. 0.]
  [0. 0. 0. ... 0. 0. 0.]
  [0. 0. 0. ... 0. 0. 0.]
  ...
  [0. 0. 0. ... 0. 0. 0.]
  [0. 0. 0. ... 0. 0. 0.]
  [0. 0. 0. ... 0. 0. 0.]]

 ...

यह सभी देखें

Apa itu 'indeks 0 di luar batas untuk sumbu 0 dengan ukuran ukuran 0'?

1
Christopher Peisert 18 अक्टूबर 2020, 18:10