この記事は公開アカウント「Reading Core Technique」(ID: AI_Discovery)から転載したものです。 データ サイエンスに興味がある方なら、このワークフローに馴染みがあるかもしれません。プロジェクトを開始するには、まず Jupyter ノートブックを実行し、次に Python コードの記述、複雑な分析の実行、さらにはモデルのトレーニングを行います。関数、クラス、グラフ、ログなどによりノートブック ファイルのサイズが大きくなると、目の前に巨大なコード ブロックが現れることがあります。運が良ければ、すべて順調に進むでしょう。じゃああなたは本当にすごいですね!
ただし、Jupyter ノートブックには、コーディングを悪夢に変える可能性のある重大な落とし穴がいくつか潜んでいます。これがどのように起こるのかを見て、それを防ぐための適切なコーディング方法について説明しましょう。 Jupyter Notebook の問題 Jupyter プロトタイピングを次のレベルに引き上げたい場合、期待どおりにいかないことがよくあります。以下は、このツールを使用しているときに私が遭遇した、皆さんもよくご存知の状況の一部です。
その結果、チームのコラボレーションは非効率かつ不器用なものとなり、チームメンバーは電子メールや Slack 経由でコード スニペットやノートブックを交換し始め、以前のコード バージョンへのロールバックは悪夢となり、ファイルの整理は乱雑になり始めます。適切なバージョン管理を行わずに Jupyter ノートブックを 2 ~ 3 週間使用した後、プロジェクトでよく見られるのは次のようになります。
Jupyter ノートブックは、探索や迅速なプロトタイピングに最適です。これらは、再利用性や実稼働での使用を目的として設計されたものではありません。 Jupyter ノートブックを使用してデータ処理パイプラインを開発する場合、最良のシナリオは、セルが実行される順序どおりに、ラップトップまたは VM 上でコードが線形かつ同期的に実行されることです。 しかし、これは、より複雑な環境、たとえば、より大きな入力データセット、他の非同期並列タスク、またはより少ない割り当てリソースでコードがどのように動作するかについては何も述べていません。実際には、ノートブックの動作は予測できない場合があるため、テストするのは困難です。
はい、文句はもう十分です。私は Jupyter がとても気に入っており、デザイン作業に非常に役立つと思います。小規模なプロジェクトを立ち上げたり、アイデアのプロトタイプを素早く作成したりするためにこれを使用することもできますが、ソフトウェア エンジニアリングの原則に従う必要があります。データ サイエンティストがノートブックを使用するときにこれらの原則が見落とされることがあるので、いくつか確認してみましょう。 コードを再び素晴らしいものにするためのヒント これらのヒントは、さまざまなプロジェクト、私が参加したミートアップ、および過去一緒に働いたソフトウェア エンジニアやアーキテクトとのディスカッションからまとめたものです。以下では、ノートブックではなく Python スクリプトを記述していることを前提としていることに注意してください。 1. コードを整理する コード品質の最も重要な側面は明確さです。明確で読みやすいコードは、コラボレーションと保守性にとって不可欠です。これを行うと、より簡潔なコードが得られます。
2. コードをモジュール化する 同じプロジェクトまたは他のプロジェクトで再利用できるものを構築し始めるときは、コードを論理的な関数とモジュールに整理する必要があります。これにより、組織化と保守性が向上します。 たとえば、NLP プロジェクトに取り組んでいて、テキスト データを処理するためのさまざまな処理関数 (トークン化、URL の削除、単語の変更など) が必要になる場合があります。これらすべてのユニットを text_processing.py という Python モジュールに入れて、そこからインポートすることで、メイン プログラムをより軽量にすることができます。 モジュールコードを書く際のヒントをいくつか紹介します。
3. コードをリファクタリングする リファクタリングは、コードの機能を変えずにコードの内部構造を再編成することを目的としており、通常は動作中の(ただしまだ完全には編成されていない)バージョンのコードに対して実行されます。重複する機能を排除し、ファイルを再構築し、抽象化を追加するのに役立ちます。 4. コード効率を向上させる 実行速度が速く、メモリとストレージ容量の消費量が少ない効率的なコードを書くことは、ソフトウェア開発におけるもう 1 つの重要なスキルです。効率的なコードを書くには何年もの経験が必要ですが、コードが遅いかどうかを判断し、どのように高速化するかを判断するのに役立つヒントをいくつか紹介します。
5. GITまたはその他のバージョン管理システムを使用する GIT + Github を使用することで、コーディング スキルが向上し、プロジェクトをより適切に整理できるようになりました。友人や同僚と協力して使用していたため、これまでは従っていなかった基準に従うことになりました。
データ サイエンスでもソフトウェア開発でも、バージョン管理システムを使用すると多くの利点があります。
6. コードをテストする 一連の操作を実行するデータ パイプラインを構築する場合、設計どおりに実行されることを確認する 1 つの方法は、予想される動作をチェックするテストを作成することです。テストは、関数の出力形状や期待値を確認するのと同じくらい簡単です。 関数とモジュールのテストを記述することには多くの利点があります。
7. ログを使用する コードの最初のバージョンを実行したら、各ステップを監視して、何が起こっているかを把握し、進行状況を追跡し、エラーを検出する必要があります。ログ記録を使用できます。ログを効果的に使用するためのヒントをいくつか紹介します。
コードの悪夢に別れを告げて、これらのヒントを学びましょう。 |
<<: プログラム可能な磁気駆動ソフトロボットが登場しました!科学サブジャーナル:この原理は19世紀後半に提案されました
>>: 重要なポイントを強調します。最大2億元の支援、AIイノベーション開発パイロットゾーンの5つの重点政策を理解する
2018 年には、機械学習と人工知能に基づくプラットフォーム、ツール、アプリケーションの劇的な成長が...
プログラマーは皆、AI はコードの作成に役立つと言いますが、コードの品質は本当に信頼できるのでしょう...
Microsoft は、人工知能に対する最近の関心と熱意に応えるために、新しいタイプのトレーニングと...
AI 戦略を導入する前に、企業はプライバシーを保護し、セキュリティ標準への準拠を確保するために新しい...
AMD は、世界中の IT リーダーを対象にした新しい調査の結果を発表し、多くのリーダーが最近の人工...
[[388553]] 3月18日夜、企業やメーカーが個人情報を不法に収集し、商業目的で利用する事件が...
1. 大規模グラフメモリ/計算問題を解決するための3つのパラダイム2年前に作成したチュートリアルでは...
9月26日のニュースによると、OpenAIのChatGPTが発売されて以来、企業の経営者や従業員は...
生体認証技術といえば、アメリカの Clearview AI 社を挙げなければなりません。同社は最も包...