Không thể nhập Keras (từ TensorFlow 2.0) trong PyCharm


8

Tôi vừa cài đặt phiên bản ổn định của TensorFlow 2.0 (phát hành vào ngày 1 tháng 10 năm 2019) trong PyCharm.

Vấn đềgói keras không có sẵn . Không thể nhập máy ảnh

Lỗi thực tế là:

" không thể nhập tên 'máy ảnh' từ dòng chảy "

Tôi đã cài đặt qua pip install tensorflow==2.0.0các CPU version, và sau đó gỡ bỏ cài đặt các phiên bản CPU và cài đặt phiên bản GPU, quapip install tensorflow-gpu==2.0.0.

Cả hai phiên bản hoạt động trên của TensorFlow đều hoạt động bình thường (không thể nhập máy ảnh hoặc các gói khác qua from tensorflow.package_X import Y).

Nếu tôi hoàn nguyên TensorFlow thành phiên bản 2.0.0.b1 , thì máy ảnh có sẵn dưới dạng gói (PyCharm nhận ra nó) và mọi thứ đều chạy trơn tru.

Có cách nào để giải quyết vấn đề này? Tôi có đang mắc lỗi trong quá trình cài đặt không?

CẬP NHẬT --- Nhập từ Bảng điều khiển Python hoạt động và cho phép nhập mà không có bất kỳ lỗi nào. Viết từ bảng điều khiển hoạt động


1
Tôi đã cài đặt ngày hôm nay và nó hoạt động tốt. Tôi đã sử dụng pip cài đặt tenorflow-gpu.
Mukul

Thay vì cung cấp một số ảnh chụp màn hình không thực sự hiển thị bất cứ điều gì, bạn nên cung cấp một đoạn mã thực tế bị lỗi và hiển thị vấn đề. Bạn có thể nhập những thứ sai cách.
xdurch0

Ảnh chụp màn hình có nghĩa là để chứng minh rằng PyCharm thậm chí không thể nhìn thấy gói máy ảnh trong TensorFlow. Lỗi là 'không thể nhập máy ảnh từ dòng chảy --- Không thể tìm thấy máy ảnh mô-đun'
Timbus Calin

Có vẻ như đó là lỗi của PyCharm IDE, theo như tôi đã đọc về các vấn đề riêng biệt được mở trên GitHub và trên PyCharm: intellij-support.jetbrains.com/hc/en-us/community/posts/ tựa
Timbus Calin

1
Ok, xin lỗi vì có thể bắt gặp một chút thô lỗ, tôi thực sự không hiểu vấn đề là gì. Vui mừng bạn đã có thể (ít nhiều) giải quyết nó.
xdurch0

Câu trả lời:


10

Dành cho người dùng PyCharm

Đối với những người sử dụng PyCharm. Cài đặt bản phát hành trong tương lai (EAP) 2019.3 EAP build 193.3793.14từ đây . Cùng với đó, bạn sẽ có thể sử dụng tính năng tự động hoàn thành cho bản phát hành ổn định hiện tại của TensorFlow (tức là 2.0). Tôi đã thử nó và nó hoạt động :).

Đối với các IDE khác

Đối với người dùng có các IDE khác, điều này sẽ chỉ được giải quyết sau khi phiên bản ổn định được phát hành, đây là trường hợp hiện tại. Nhưng điều này có thể mất thêm thời gian để sửa chữa. Xem bình luận ở đây . Tôi cho rằng sẽ là khôn ngoan khi chờ đợi và tiếp tục sử dụng version 2.0.0.b1. Mặt khác, tránh nhập từ tensorflow_corenếu bạn không muốn cấu trúc lại mã của mình trong tương lai.

Lưu ý: để tự động hoàn thành công việc, hãy sử dụng câu lệnh nhập như bên dưới

import tensorflow.keras as tk

# this does not work for autocomplete 
# from tensorflow import keras as tk  

Bộ tự động hoàn thành hoạt động cho TensorFlow 2.0.0 trên phiên bản CPU, nhưng bộ tự động hoàn thành không hoạt động cho phiên bản GPU.


Có, tôi cũng sẽ đợi cho đến khi PyCharm khắc phục vấn đề này. Cảm ơn bạn đã bình luận.
Timbus Calin

2

GIẢI QUYẾT --- Xem câu trả lời cho vấn đề này dưới đây.

GIẢI PHÁP 1 (giải pháp tốt nhất)

Là câu trả lời được chấp nhận được cung cấp ở trên. Nó hoạt động trên phiên bản EAP, tôi đã thử nghiệm nó trên một số máy có Windows.

GIẢI PHÁP 2

Mặc dù PyCharm không nhận ra các mô-đun, nhưng chạy tệp .py hoạt động. Tôi vẫn không biết liệu đây là vấn đề của TensorFlow hay PyCharm, nhưng đây là giải pháp mà tôi đã tìm thấy, nhiều người đã gặp phải vấn đề này.

PyCharm không thấy hàng nhập, coi chúng là lỗi

nhập mô tả hình ảnh ở đây

GIẢI PHÁP 3

Nhập các mô-đun từ tensorflow_corethay vìtensorflow

Thí dụ: from tensorflow_core.python.keras.preprocessing.image import ImageDataGenerator

Tuy nhiên, như được đề cập bởi @Nagabhushan SN trong bình luận bên dưới và bên trên trong câu trả lời được chấp nhận:

Mặt khác, tránh nhập từ tenorflow_core nếu bạn không muốn cấu trúc lại mã của mình trong tương lai.

nhập mô tả hình ảnh ở đây


Không thêm bất cứ điều gì vào đầu câu trả lời được chấp nhận
Nagabhushan SN

1
Câu trả lời đã thực sự được chỉnh sửa, theo nghĩa mà tôi tuyên bố rõ ràng rằng giải pháp tốt nhất được thêm vào ở trên.
Timbus Calin

1
Được rồi xin lỗi. Lỗi của tôi. Nếu bạn có thể thực hiện một thay đổi nhỏ, tôi sẽ xóa downvote
Nagabhushan SN

1
Ngoài ra, như đã đề cập trong câu trả lời của Praveen Kulkarni, tôi khuyên bạn nên thêm cảnh báo dưới đây cho giải pháp thứ 3: On the other hand avoid imports from tensorflow_core if you do not want to refactor your code in the future.Bạn có thể cung cấp một liên kết đến câu trả lời của anh ấy: stackoverflow.com/a/58192020/3337089
Nagabhushan SN

1
Tôi đã thêm nhận xét theo yêu cầu, cảm ơn bạn.
Timbus Calin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.