Hướng dẫn is python faster than jupyter notebook? - python có nhanh hơn máy tính xách tay jupyter không?

14

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 đang phát triển một chương trình để mô phỏng (loại như bộ giải số như). Tôi đang phát triển nó trong một máy tính xách tay ipython. Tôi đang tự hỏi nếu tốc độ của mã chạy trong máy tính xách tay giống như tốc độ của mã chạy từ thiết bị đầu cuối?

Bộ nhớ trình duyệt hoặc chi phí trên máy tính xách tay và những thứ tương tự sẽ làm cho mã chạy chậm hơn trong sổ ghi chép so với chạy bản địa từ thiết bị đầu cuối?

Hướng dẫn is python faster than jupyter notebook? - python có nhanh hơn máy tính xách tay jupyter không?

m02ph3u5

2.8776 huy hiệu vàng39 Huy hiệu bạc49 Huy hiệu đồng6 gold badges39 silver badges49 bronze badges

hỏi ngày 8 tháng 2 năm 2015 lúc 1:16Feb 8, 2015 at 1:16

2

Một trong những điều có thể làm chậm mọi thứ rất nhiều sẽ là nếu bạn có nhiều tuyên bố in trong mô phỏng của mình.a lot of print statements in your simulation.

Nếu bạn chạy máy chủ và trình duyệt kernels trên cùng một máy, giả sử mô phỏng của bạn sẽ sử dụng tất cả các lõi của máy tính của bạn, có bằng cách sử dụng máy tính xách tay sẽ làm chậm mọi thứ. Nhưng không hơn việc duyệt Facebook hoặc YouTube trong khi mô phỏng đang chạy. Hầu hết các chi phí sử dụng ipython thực sự là khi bạn nhấn shift-enter. Trong lời nhắc Python thuần túy, việc repress có thể phản ứng trong 100ms và trong ipython 150 hoặc giống nhau. Nhưng nếu bạn quan tâm đến hiệu suất, chi phí của Ipython không phải là điều đầu tiên bạn nên quan tâm.

Đã trả lời ngày 8 tháng 2 năm 2015 lúc 1:43Feb 8, 2015 at 1:43

MattmattMatt

26.4K6 Huy hiệu vàng80 Huy hiệu bạc73 Huy hiệu đồng6 gold badges80 silver badges73 bronze badges

5

Tôi đã thấy rằng Jupyter chậm hơn đáng kể so với Ipython, cho dù có nhiều câu lệnh in hay không. Gần như tất cả các chức năng bị giảm hiệu suất, nhưng đặc biệt nếu bạn đang phân tích các khung dữ liệu lớn hoặc thực hiện các tính toán phức tạp, tôi sẽ gắn bó với ipython.

Đã trả lời ngày 15 tháng 2 năm 2018 lúc 22:36Feb 15, 2018 at 22:36

JoshjoshJosh

1.0753 huy hiệu vàng11 Huy hiệu bạc21 Huy hiệu đồng3 gold badges11 silver badges21 bronze badges

1

Tôi đã kiểm tra việc học cùng một mạng lưới thần kinh nhỏ (1) dưới Jupyter và (2) chạy Python theo lời nhắc của Anaconda (với exec(open(foo.py).read()) dưới Python hoặc với python foo.py trực tiếp theo lời nhắc của Anaconda).

Phải mất 107,4 giây hoặc 108,2 giây theo lời nhắc của Anaconda và 105,7 giây dưới Jupyter.

Vì vậy, không, không có sự khác biệt đáng kể, và sự khác biệt nhỏ là có lợi cho Jupyter.

Đã trả lời ngày 19 tháng 6 năm 2019 lúc 10:00Jun 19, 2019 at 10:00

user31264user31264user31264

6.3343 huy hiệu vàng24 Huy hiệu bạc37 Huy hiệu đồng3 gold badges24 silver badges37 bronze badges

Ý kiến

Sử dụng tập lệnh giúp tôi nhận ra những hạn chế của Notebook Jupyter

Nphoto của Luca Bravo

Động lực

Giống như hầu hết mọi người, công cụ đầu tiên tôi sử dụng khi bắt đầu học khoa học dữ liệu là Jupyter Notebook. Hầu hết các khóa học khoa học dữ liệu trực tuyến đều sử dụng máy tính xách tay Jupyter như một phương tiện để dạy. Điều này có ý nghĩa bởi vì người mới bắt đầu bắt đầu viết mã trong các ô Jupyter Notebook dễ dàng hơn là viết một kịch bản với các lớp và chức năng.

Một lý do khác tại sao Jupyter Notebook là một công cụ phổ biến như vậy trong khoa học dữ liệu là Jupyter Notebook giúp dễ dàng khám phá và vẽ dữ liệu. Khi chúng tôi nhập ‘Shift + Enter, chúng tôi sẽ thấy ngay kết quả của mã, điều này giúp chúng tôi dễ dàng xác định xem mã của chúng tôi có hoạt động hay không.

Tuy nhiên, tôi đã nhận ra một số dự phòng của Jupyter Notebook khi tôi làm việc với nhiều dự án khoa học dữ liệu hơn:

  • Không có tổ chức: Khi mã của tôi trở nên lớn hơn, tôi ngày càng khó theo dõi những gì tôi viết. Cho dù tôi sử dụng bao nhiêu lần để tách sổ ghi chép thành các phần khác nhau, các ô bị ngắt kết nối khiến tôi khó tập trung vào những gì mã làm.: As my code gets bigger, it becomes increasingly difficult for me to keep track of what I write. No matter how many markdowns I use to separate the notebook into different sections, the disconnected cells make it difficult for me to concentrate on what the code does.
  • Khó thử nghiệm: YouMay muốn kiểm tra các phương pháp xử lý dữ liệu khác nhau, chọn các tham số khác nhau cho thuật toán học máy của bạn để xem liệu độ chính xác có tăng hay không. Nhưng mỗi khi bạn thử nghiệm các phương pháp mới, bạn cần tìm và chạy lại các ô liên quan. Điều này thật khó hiểu và tốn thời gian, đặc biệt là khi quy trình xử lý hoặc đào tạo mất nhiều thời gian để chạy.Youmay want to test with different methods of processing your data, choose different parameters for your machine learning algorithm to see if the accuracy increases. But every time you experiment with new methods, you need to find and rerun the related cells. This is confusing and time-consuming, especially when the processing procedure or the training takes a long time to run.
  • Không lý tưởng cho khả năng tái tạo: Nếu bạn muốn sử dụng dữ liệu mới với cấu trúc hơi khác, sẽ rất khó để xác định nguồn lỗi trong sổ ghi chép của bạn.If you want to use new data with a slightly different structure, it would be difficult to identify the source of error in your notebook.
  • Khó gỡ lỗi: Khi bạn có lỗi trong mã của mình, thật khó để biết lý do cho lỗi là mã hay thay đổi dữ liệu. Nếu lỗi nằm trong mã, phần nào của mã gây ra vấn đề?When you getan error in your code, it is difficult to know whether the reason for the error is the code or the change in data. If the error is in the code, which part of the code is causing the problem?
  • Không lý tưởng để sản xuất: Jupyter Notebook không chơi tốt với các công cụ khác. Không dễ để chạy mã từ Jupyter Notebook trong khi sử dụng các công cụ khác.Jupyter Notebook does not play very well with other tools. It is not easy to run the code from Jupyter Notebook while using other tools.

Tôi biết phải có một cách tốt hơn để xử lý mã của tôi vì vậy tôi quyết định thử các tập lệnh. Để làm cho nó bớt khó hiểu hơn, tôi đề cập đến tệp .py khi sử dụng Word Script Script trong bài viết này. Đây là những lợi ích tôi tìm thấy khi sử dụng tập lệnh:

Được tổ chức

Các ô trong sổ ghi chép Jupyter khiến việc tổ chức mã thành các phần khác nhau khó khăn. Với một tập lệnh, chúng tôi có thể tạo một số hàm nhỏ với mỗi hàm chỉ định mã không thích điều này

Tốt hơn nữa, nếu các chức năng này có thể được phân loại trong cùng một danh mục, chẳng hạn như các chức năng để xử lý dữ liệu, chúng ta có thể đặt chúng vào cùng một lớp!

Bất cứ khi nào chúng tôi muốn xử lý dữ liệu của mình, chúng tôi biết các chức năng trong lớp Preprocess có thể được sử dụng cho mục đích này.

Khuyến khích thí nghiệm

Khi chúng tôi muốn thử nghiệm một cách tiếp cận khác với dữ liệu tiền xử lý, chúng tôi chỉ có thể thêm hoặc xóa một chức năng bằng cách nhận xét như thế này mà không ngại phá vỡ mã! Ngay cả khi chúng tôi tình cờ phá vỡ mã, chúng tôi biết chính xác nơi để sửa nó.

Lý tưởng cho khả năng sinh sản

Với các lớp và chức năng, chúng tôi có thể làm cho mã đủ chung để nó có thể làm việc với các dữ liệu khác.

Ví dụ: nếu chúng tôi muốn thả các cột khác nhau trong dữ liệu mới của mình, chúng tôi chỉ cần thay đổi columns_to_drop thành danh sách các cột, chúng tôi muốn bỏ và mã sẽ chạy trơn tru!

Tôi cũng có thể tạo một pipelinethat chỉ định các bước để xử lý và đào tạo dữ liệu! Khi tôi có một đường ống, tất cả những gì tôi cần làm là sử dụngpipeline that specifies steps to process and train the data! Once I have a pipeline, all I need to do is to use

pipline.fit_transform(data)

Để áp dụng xử lý tương tự cho cả dữ liệu tàu và thử nghiệm.

Dễ dàng gỡ lỗi

Với các chức năng, việc kiểm tra chức năng đó có dễ dàng hơn không. Chúng ta có thể nhanh chóng phát hiện ra nơi trong mã chúng ta nên thay đổi để tạo ra đầu ra mà chúng ta muốn

Nếu tất cả các bài kiểm tra vượt qua nhưng vẫn có một lỗi trong việc chạy mã của chúng tôi, chúng tôi biết dữ liệu là nơi chúng tôi nên xem tiếp theo.

Ví dụ: sau khi vượt qua bài kiểm tra ở trên, tôi vẫn có một kiểu mẫu khi chạy tập lệnh, điều này cho tôi ý tưởng rằng dữ liệu của tôi có các giá trị null. Tôi chỉ cần chăm sóc điều đó để chạy mã trơn tru.

Tôi đã viết một bài viết về cách sử dụng pytest để thử nghiệm ở đây.

Lý tưởng cho sản xuất

Chúng ta có thể sử dụng các chức năng khác nhau trong nhiều tập lệnh trên một thứ khác như thế này

hoặc để thêm một tệp cấu hình để kiểm soát các giá trị của các biến. Điều này ngăn chúng tôi lãng phí thời gian theo dõi một biến cụ thể trong mã chỉ để thay đổi giá trị của nó.

Chúng tôi cũng có thể dễ dàng thêm các công cụ để theo dõi thử nghiệm như MLFlow hoặc các công cụ để xử lý cấu hình như Hydra.CC!

Nếu bạn không biết về Hydra, thì đó là một công cụ Python để định cấu hình các dự án khoa học dữ liệu của bạn. Công cụ này cho phép bạn thử nghiệm các tham số và mô hình khác nhau mà không dành hàng giờ để sửa mã của bạn.

Tôi đã không thích ý tưởng không sử dụng máy tính xách tay Jupyter cho đến khi tôi đẩy mình ra khỏi vùng thoải mái của mình

Tôi đã từng sử dụng máy tính xách tay Jupyter mọi lúc. Khi một số nhà khoa học dữ liệu khuyên tôi nên chuyển từ Jupyter Notebook sang Script để ngăn chặn một số vấn đề được liệt kê ở trên, tôi đã không hiểu và cảm thấy chống lại việc làm như vậy. Tôi đã không thích sự không chắc chắn của việc không thể nhìn thấy kết quả khi tôi chạy tế bào.

Nhưng nhược điểm của Notebook Jupyter đã tăng lên khi tôi bắt đầu dự án khoa học dữ liệu thực sự đầu tiên của mình trong công ty mới của mình nên tôi quyết định đẩy mình ra khỏi vùng thoải mái và thử nghiệm các kịch bản.

Ban đầu, tôi cảm thấy không thoải mái nhưng bắt đầu nhận thấy những lợi ích của việc sử dụng tập lệnh. Tôi bắt đầu cảm thấy có tổ chức nhiều hơn khi mã của tôi được tổ chức thành các chức năng, lớp học và nhiều tập lệnh khác nhau với mỗi tập lệnh phục vụ các mục đích khác nhau như tiền xử lý, đào tạo và kiểm tra.

Vì vậy, bạn có đề nghị tôi ngừng sử dụng Notebook Jupyter không?

Donith hiểu sai ý tôi. Tôi vẫn sử dụng máy tính xách tay Jupyter nếu mã của tôi nhỏ và nếu tôi không có kế hoạch đưa mã của mình vào sản xuất. Tôi sử dụng Notebook Jupyter khi tôi muốn khám phá và trực quan hóa dữ liệu. Tôi cũng sử dụng nó để giải thích cách sử dụng một số thư viện Python. Ví dụ: tôi viết sử dụng chủ yếu là máy tính xách tay Jupyter trong kho lưu trữ này làm phương tiện để giải thích mã được đề cập trong tất cả các bài viết của tôi.

Nếu bạn không cảm thấy thoải mái với việc mã hóa mọi thứ trong tập lệnh, bạn có thể sử dụng cả tập lệnh và máy tính xách tay Jupyter cho các mục đích khác nhau. Ví dụ: bạn có thể tạo các lớp và chức năng trong tập lệnh sau đó nhập chúng vào sổ ghi chép để máy tính xách tay ít lộn xộn hơn.

Một cách khác là biến sổ ghi chép thành tập lệnh sau khi viết sổ ghi chép. Cá nhân tôi không thích phương pháp này vì tôi thường mất nhiều thời gian hơn để sắp xếp mã trong sổ ghi chép của mình, chẳng hạn như đưa chúng vào các chức năng và lớp học và viết các chức năng kiểm tra.

Tôi thấy việc viết một chức năng nhỏ sau đó viết một chức năng kiểm tra nhỏ nhanh hơn và an toàn hơn. Nếu tôi tình cờ muốn tăng tốc mã của mình với thư viện Python mới, tôi có thể sử dụng chức năng kiểm tra mà tôi đã viết để đảm bảo nó vẫn hoạt động như tôi mong đợi.

Với điều đó đã được nói, tôi tin rằng có nhiều cách để giải quyết nhược điểm của Notebook Jupyter hơn những gì tôi đã đề cập ở đây như cách Netflix sử dụng đưa sổ ghi chép vào sản xuất và lên lịch cho máy tính xách tay để chạy vào một thời điểm nhất định.

Sự kết luận

Mọi người đều có cách riêng để làm cho quy trình làm việc của họ hiệu quả hơn và với tôi, đó là tận dụng tiện ích của các kịch bản. Nếu bạn vừa chuyển từ Jupyter Notebook sang Script, có thể không trực quan khi viết mã trong tập lệnh, nhưng hãy tin tôi, cuối cùng bạn sẽ quen với việc sử dụng tập lệnh.

Khi điều đó xảy ra, bạn sẽ bắt đầu nhận ra nhiều lợi ích của các tập lệnh so với sổ ghi chép Jupyter lộn xộn và muốn viết hầu hết các mã của bạn trong các tập lệnh.

Nếu bạn đang tìm kiếm các phương thức để chuyển từ Jupyter Notebook, bài viết này cung cấp một số mẹo tốt để làm cho mã của bạn có thể tái tạo, tự động và có thể triển khai với các tập lệnh.

Nếu bạn không cảm thấy thoải mái với sự thay đổi lớn, hãy bắt đầu nhỏ.

Những thay đổi lớn bắt đầu với các bước nhỏ

Tôi thích viết về các khái niệm khoa học dữ liệu cơ bản và chơi với các thuật toán và công cụ khoa học dữ liệu khác nhau. Bạn có thể kết nối với tôi trên LinkedIn và Twitter.

Ngôi sao repo này nếu bạn muốn xem mã cho tất cả các bài viết tôi đã viết. Theo dõi tôi trên phương tiện để được thông báo với các bài báo khoa học dữ liệu mới nhất của tôi như thế này

Notebook Jupyter có tốt hơn Python không?

Được các nhà khoa học dữ liệu rất ưa thích vì trình độ toán học của nó (biểu đồ, đồ thị, phương trình phức tạp); Một sổ ghi chép được tạo trong Jupyter có thể được truy cập (để chỉnh sửa) từ bất kỳ thiết bị nào bằng trình duyệt web. Nó đi kèm với một trình gỡ lỗi. (Charting, graphing, complex equations); A notebook created in Jupyter can be accessed (for editing) from any device using a web browser . It comes with a debugger.

Pycharm có nhanh hơn Jupyter không?

Tính năng tự động hoàn chỉnh của Pycharm thực sự tạo điều kiện phát triển và quy trình làm việc nhanh hơn, và đó là điều mà Jupyter không cung cấp.Tính năng chỉnh sửa thông minh này là lý do tại sao Pycharm rõ ràng là sự lựa chọn cho các nhà phát triển và kỹ sư phần mềm, đặc biệt là những người làm việc độc quyền trong Python., and it's something that Jupyter does not offer. This smart editing feature is why PyCharm is clearly the choice for developers and software engineers, especially those working exclusively in Python.

Notebook Jupyter có chậm hơn kịch bản không?

Vì vậy, không, không có sự khác biệt đáng kể, và sự khác biệt nhỏ là có lợi cho Jupyter.no, there is no significant difference, and the minor difference is in favor of Jupyter.

Có điều gì tốt hơn máy tính xách tay Jupyter không?

Jupyter là một công cụ web tương tác miễn phí, mở, được gọi là một cuốn sổ tay tính toán, mà các nhà nghiên cứu có thể sử dụng để kết hợp mã phần mềm, đầu ra tính toán, văn bản giải thích và tài nguyên đa phương tiện trong một tài liệu.Gitduck là máy tính xách tay Jupyter tốt nhất.GitDuck is the best Jupyter Notebook alternative.