趣味のPython・深層学習

中級者のための実装集

2023-01-01から1年間の記事一覧

Pythonディスクリプタの基本: カスタム属性の作成と活用

はじめに Pythonにおいて、ディスクリプタは強力なオブジェクトの属性を制御するための仕組みです。この記事では、ディスクリプタの基本的な概念と、実際の利用例について詳しく解説します。サンプルコードを交えながら、どのようにディスクリプタを定義し、…

深層学習内部の行列の内積を行うクラス(Matmul)の実装

はじめに 行列の乗算(Matrix Multiplication)は、深層学習などで頻繁に利用される基本的な演算です。その中でも、逆伝播(Backpropagation)における勾配計算の一環として行われることがあります。この記事では、NumPyを用いて行列の乗算を行うMatMulクラ…

__iter__, __next__によるイテレータの実装

1. iter メソッドの役割 iter メソッドはクラスがイテレータとして振る舞うための特殊メソッドです。このメソッドを実装することで、クラスのオブジェクトを iter() 関数で呼び出せるようになります。 class MyIterator: def __iter__(self): return self it…

ジェネレータ関連(yield, __init__, __next__)の初心者向け解説

ジェネレータの定義 ジェネレータはイテレータを作成するための特別な関数です。(ジェネレータによって作成されたイテレータをジェネレータイテレータとも呼びます。) yieldによるジェネレータ実装 from typing import Generator def simple_generator() -…

nn.Sequentialの挙動を実装して理解する。

この記事では、nn.Sequentialの基本的な概念から始め、自作のCustomSequentialクラスを通してその挙動を解説します。 1. nn.Sequentialとは? nn.Sequentialは、PyTorchでネットワークを構築するためのシンプルで便利なツールです。これは順番にモジュールを…

デコレータ@contextmanagerを3stepで理解する。

ステップ1: try-finally を使用する例 まず、ファイルを開いて処理を行う際に、try-finally ブロックを使用する例を見てみましょう。これにより、ファイルが正しくクローズされることが保証されます。 Copy code file_path: str = "example.txt" try: file: …

Pythonのpathlibモジュールを使ってパスを効果的に操作する

Pythonにおいて、ファイルパスやディレクトリの操作は不可欠です。pathlibモジュールは、これらの操作をより簡潔かつ直感的に行うための優れた手段を提供しています。以下に、なぜpathlibを使うべきなのか、そのメリットについて詳しく解説します。 1. 直感…

Pythonにおける@propertyのメリット

Pythonにおけるpropertyは、オブジェクトのアトリビュートにアクセスする際に利用される機能で、カスタムな取得や設定のロジックを組み込むことができます。この記事では、propertyの使用方法と通常の属性アクセスとの違いに焦点を当てます。 1. Propertyと…

Pythonの型アノテーション(型ヒント)の基礎

Pythonの型アノテーションは、コードを読みやすくし、開発プロセスを効果的にサポートします。以下に、いくつかの例を詳しく見てみましょう。 1. シンプルな型アノテーション def add_numbers(a: int, b: int) -> int: return a + b この例では、add_numbers…

特殊メソッド: 深層学習で学ぶ__call__メソッド

深層学習モデルを構築する際、Pythonの特殊メソッドはパワフルなツールとなります。その中でも、callメソッドはカスタムレイヤーやカスタムモデルの実装において特に重要です。この記事では、callメソッドの魅力を深層学習の文脈で解説し、具体的なサンプル…

setattr関数、getattr関数の基礎

組み込み関数のsetattr関数、getattr関数はオブジェクトを操作する上でとても役立ちます setattr 関数: setattr 関数は、オブジェクトの属性に値を設定するための関数です。 def set_attribute(obj: object, attr_name: str, value: any) -> None: """ オブ…

Attrdict : Pythonの辞書の値を属性アクセス

PythonのAttrDict: 辞書の属性アクセス 本記事では、Pythonでよく使われるデータ構造の一つである辞書(Dictionary)を、AttrDictクラスを使用することで属性アクセスを可能にする解説をします。AttrDictは辞書を拡張し、属性アクセスを提供することで、コー…

Pythonのリスト・辞書における内包表記

内包表記の良い覚え方を教えてください! この記事を読んで必ずマスターしよう 目次 目次 はじめに リスト内包表記の基本 リスト内包表記の応用 辞書内包表記の基本 辞書内包表記の応用 まとめ はじめに この記事では、内包表記の基本と応用に焦点を当てて学…