4
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi có hình ảnh RGB [32 x 32 x 3] được lưu dưới dạng mảng numpy 3D mà tôi sử dụng làm đầu vào cho mạng lưới thần kinh của tôi [sử dụng tenorflow]. Để sử dụng chúng làm đầu vào, tôi định hình lại chúng thành mảng NP 1D [1 x 3072] bằng cách sử dụng định hình lại [1, -1]. Khi tôi hoàn thành việc đào tạo mạng của mình, tôi muốn định hình lại đầu ra trở lại, nhưng sử dụng định hình lại [32,32,3] dường như không cung cấp kết quả mong muốn.
Đây có phải là cách chính xác để làm điều đó? Làm thế nào tôi có thể chắc chắn rằng mỗi mốc thời gian sẽ trở lại đúng chỗ?
Đã hỏi ngày 16 tháng 5 năm 2017 lúc 18:43May 16, 2017 at 18:43
2
Nếu bạn đang tìm cách tạo một mảng 1D, hãy sử dụng .reshape [-1], sẽ tạo ra một phiên bản tuyến tính của mảng bạn. Nếu bạn sử dụng .Reshape [32,32,3], điều này sẽ tạo ra một mảng 32, 32 by-3, mảng, là định dạng ban đầu được mô tả. Sử dụng '-1' tạo ra một mảng tuyến tính có cùng kích thước với số lượng phần tử trong mảng kết hợp, lồng nhau.
Đã trả lời ngày 16 tháng 5 năm 2017 lúc 19:12May 16, 2017 at 19:12
2
Nếu M
là [32 x 32 x 3]
, thì .reshape[1,-1]
sẽ tạo ra một mảng 2D [không phải 1D], có hình dạng [1, 32*32*3]
. Có thể được định hình lại về [32,32,3] với cùng một câu lệnh reshape
.
Nhưng đó là định hình lại đầu vào đến và đi nhưng bạn chưa nói với chúng tôi đầu ra của mạng của bạn là như thế nào. Nó có hình dạng gì? Làm thế nào bạn đang cố gắng định hình lại đầu ra, và điều gì là sai với nó?
Đã trả lời ngày 16 tháng 5 năm 2017 lúc 19:03May 16, 2017 at 19:03
Hpauljhpauljhpaulj
209K13 Huy hiệu vàng213 Huy hiệu bạc320 Huy hiệu đồng13 gold badges213 silver badges320 bronze badges
1
Nghĩa là bạn không phải chỉ định một số chính xác cho một trong các kích thước trong phương pháp định hình lại.
Vượt qua -1
là giá trị và Numpy sẽ tính toán số này cho bạn.
Thí dụ
Chuyển đổi mảng 1D với 8 phần tử thành mảng 3D với các phần tử 2x2:
Định hình lại từ 1-D đến 2-D
Thí dụ
Chuyển đổi mảng 1-D sau với 12 phần tử thành mảng 2-D.
Kích thước ngoài cùng sẽ có 4 mảng, mỗi mảng có 3 yếu tố:
nhập khẩu NUMPY dưới dạng NP
mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]
newarr = mảng.reshape [4, 3]
print[newarr]
Hãy tự mình thử »
Định hình lại từ 1-D đến 3-D
Thí dụ
Chuyển đổi mảng 1-D sau với 12 phần tử thành mảng 2-D.
Kích thước ngoài cùng sẽ có 4 mảng, mỗi mảng có 3 yếu tố:
nhập khẩu NUMPY dưới dạng NP
mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]
newarr = mảng.reshape [4, 3]
print[newarr]
Hãy tự mình thử »
Định hình lại từ 1-D đến 3-D
Chuyển đổi mảng 1-D sau với 12 phần tử thành mảng 3-D.
Chúng ta có thể định hình lại một mảng 8 phần tử 1D thành 4 phần tử trong 2 hàng 2D nhưng chúng ta không thể định hình lại nó thành một mảng 2 phần 3 của 3 phần tử vì điều đó yêu cầu 3x3 = 9 phần tử.
Thí dụ
Hãy thử chuyển đổi mảng 1D với 8 phần tử thành mảng 2D với 3 phần tử trong mỗi chiều [sẽ gây ra lỗi]:
nhập khẩu NUMPY dưới dạng NP
mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8]]]
newarr = mảng.reshape [3, 3]
print[newarr]
Hãy tự mình thử »
Trả về bản sao hoặc xem?
Thí dụ
Hãy thử chuyển đổi mảng 1D với 8 phần tử thành mảng 2D với 3 phần tử trong mỗi chiều [sẽ gây ra lỗi]:
nhập khẩu NUMPY dưới dạng NP
mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8]]]
newarr = mảng.reshape [3, 3]
Hãy tự mình thử »
Trả về bản sao hoặc xem?
Kiểm tra xem mảng được trả về là một bản sao hoặc chế độ xem:
in [Arr.Reshape [2, 4] .base]
Ví dụ trên trả về mảng ban đầu, vì vậy nó là một chế độ xem.
Chiều không xác định
Bạn được phép có một chiều "không xác định".
Nghĩa là bạn không phải chỉ định một số chính xác cho một trong các kích thước trong phương pháp định hình lại.
nhập khẩu NUMPY dưới dạng NP
mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8]]]
newarr = mảng.reshape [3, 3]
print[newarr]
Hãy tự mình thử »
Trả về bản sao hoặc xem? We can not pass -1
to more than one dimension.
Kiểm tra xem mảng được trả về là một bản sao hoặc chế độ xem:
in [Arr.Reshape [2, 4] .base]
Ví dụ trên trả về mảng ban đầu, vì vậy nó là một chế độ xem.
Thí dụ
Chiều không xác định
nhập khẩu NUMPY dưới dạng NP
mảng = np.array [[1, 2, 3, 4, 5, 6, 7, 8]]]
newarr = mảng.reshape [3, 3]
print[newarr]
Hãy tự mình thử »
Trả về bản sao hoặc xem? There are a lot of
functions for changing the shapes of arrays in numpy flatten
, M
0 and also for rearranging the elements M
1, M
2, M
3, M
4 etc. These fall under Intermediate to Advanced section of numpy.
Kiểm tra xem mảng được trả về là một bản sao hoặc chế độ xem:
Exercise:
in [Arr.Reshape [2, 4] .base]
Ví dụ trên trả về mảng ban đầu, vì vậy nó là một chế độ xem.
Chiều không xác định