2017-05-15 23 views
6

tôi có một danh sách nói, temp_list với thuộc tính sau:ValueError: không thể phát sóng mảng đầu vào từ hình dạng (224,224,3) thành hình (224.224)

len(temp_list) = 9260 
temp_list[0].shape = (224,224,3) 

Bây giờ, khi tôi đang chuyển đổi thành mảng NumPy,

x = np.array(temp_list) 

tôi nhận được lỗi:

ValueError: could not broadcast input array from shape (224,224,3) into shape (224,224) 

ai đó có thể giúp tôi ở đây?

+0

tôi đoán chúng ta cần sử dụng np.flatten() – Aditya

+0

làm phẳng sẽ bóp méo hình dạng của mảng. – neel

+0

bạn có thể hiển thị mẫu đầu vào của mình không? – Aditya

Trả lời

11

Ít nhất một mục trong danh sách của bạn không phải là ba chiều (như mục đầu tiên), nhưng chỉ hai chiều: 224 x 224. Đó là những gì gây ra lỗi cho bạn.
Bạn sẽ cần sửa lỗi đó, để có thể biến danh sách của bạn thành một mảng bốn (hoặc ba) chiều. Nếu không có ngữ cảnh, không thể nói nếu bạn muốn mất kích thước từ các mục 3D hoặc thêm một thứ vào các mục 2D.

Dưới đây là một ví dụ về các lỗi:

>>> a = [np.zeros((224,224,3)), np.zeros((224,224,3)), np.zeros((224,224))] 
>>> np.array(a) 

mang đến cho

ValueError: could not broadcast input array from shape (224,224,3) into shape (224,224) 
0

Yea, Trên thực tế câu trả lời @Evert là hoàn toàn chính xác. Ngoài ra, tôi muốn thêm một lý do nữa có thể gặp lỗi như vậy.

>>> np.array([np.zeros((20,200)),np.zeros((20,200)),np.zeros((20,200))]) 

Đây sẽ là hoàn toàn tốt đẹp, Tuy nhiên, Điều này dẫn đến lỗi:

>>> np.array([np.zeros((20,200)),np.zeros((20,200)),np.zeros((20,201))]) 

ValueError: could not broadcast input array from shape (20,200) into shape (20) 

Các NumPy arry trong danh sách, cũng phải có cùng kích thước.

Các vấn đề liên quan