Loguru プリントのようにシンプル、ログのように柔軟

Loguru Simple as printing, flexible as logs.

データサイエンスプロジェクトのためのシンプルなログ記録ソリューション

Image by Author

元記事: https://mathdatasimplified.com、2023年7月17日に公開

データサイエンスプロジェクトでログを使用する理由

データサイエンティストは、コードをデバッグするためにしばしばprint関数を使用します。しかし、print文の数が増えるにつれて、出力がどこから来たのかを特定することが難しくなります。行番号や関数名がないためです。

def encode_data(data: list):    print("データをエンコードする")    data_map = {'a': 1, 'b': 2, 'c': 3}    print(f"データマップ: {data_map}")    return [data_map[num] for num in data]def add_one(data: list):    print("1を加える")    return [num + 1 for num in data]def process_data(data: list):    print("データを処理する")    data = encode_data(data)    print(f"エンコードされたデータ: {data}")    data = add_one(data)    print(f"1を加えた結果: {data}")process_data(['a', 'a', 'c'])

出力:

データを処理するデータをエンコードするデータマップ: {'a': 1, 'b': 2, 'c': 3}エンコードされたデータ: [1, 1, 3]1を加える1を加えた結果: [2, 2, 4]

コードを本番環境に展開する際、デバッグ用の行を手動で削除することは手間がかかり、エラーの原因となる可能性があります。

def encode_data(data: list):    print("データをエンコードする")    data_map = {'a': 1, 'b': 2, 'c': 3}    return [data_map[num] for num in data]def add_one(data: list):    print("1を加える")    return [num + 1 for num in data]def process_data(data: list):    print("データを処理する")    data = encode_data(data)    data = add_one(data)process_data(['a', 'a', 'c'])

ログ記録は、この問題に対する完璧な解決策を提供します。データサイエンティストは、出力のために異なるレベル(デバッグ、情報、警告、エラー)を指定することができます。

def encode_data(data: list):    logger.info("データをエンコードする")    data_map = {'a': 1, 'b': 2, 'c': 3}    logger.debug(f"データマップ: {data_map}")    return [data_map[num] for num in data]def add_one(data: list):    logger.info("1を加える")    return [num + 1 for num in data]def process_data(data: list):    logger.info("データを処理する")    data = encode_data(data)    logger.debug(f"エンコードされたデータ: {data}")    data = add_one(data)…

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

「15Rockの共同創業者兼CEO、ガウタム・バクシ氏によるインタビューシリーズ」

「ガウタム・バクシは、気候リスク管理とアドバイザリーサービスのグローバルリーダーである15Rockの共同創設者兼CEOですガウ...

人工知能

ベイリー・カクスマー、ウォータールー大学の博士課程候補 - インタビューシリーズ

カツマー・ベイリーは、ウォータールー大学のコンピュータ科学学部の博士課程の候補者であり、アルバータ大学の新入教員です...

人工知能

「コーネリスネットワークスのソフトウェアエンジニアリング担当副社長、ダグ・フラーラー氏 - インタビューシリーズ」

ソフトウェアエンジニアリングの副社長として、DougはCornelis Networksのソフトウェアスタック全体、Omni-Path Architecture...

人工知能

「コマンドバーの創設者兼CEO、ジェームズ・エバンスによるインタビューシリーズ」

ジェームズ・エバンズは、CommandBarの創設者兼CEOであり、製品、マーケティング、顧客チームを支援するために設計されたAIパ...

AIテクノロジー

「LXTのテクノロジーバイスプレジデント、アムル・ヌール・エルディン - インタビューシリーズ」

アムル・ヌール・エルディンは、LXTのテクノロジー担当副社長ですアムルは、自動音声認識(ASR)の文脈での音声/音響処理と機...

人工知能

「UVeyeの共同設立者兼CEO、アミール・ヘヴェルについてのインタビューシリーズ」

アミール・ヘヴァーは、UVeyeのCEO兼共同創設者であり、高速かつ正確な異常検出により、自動車およびセキュリティ産業に直面...