最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中Namespace()函數(shù)詳解

 更新時(shí)間:2025年11月21日 14:46:21   作者:xwill*  
Namespace是argparse模塊提供的一個(gè)類,用于創(chuàng)建命名空間對(duì)象,它允許通過點(diǎn)操作符訪問數(shù)據(jù),比字典更易讀,在深度學(xué)習(xí)項(xiàng)目中常用于加載配置、命令行參數(shù)和超參數(shù),本文介紹Python中Namespace()函數(shù),感興趣的朋友跟隨小編一起看看吧

在 Python 中,Namespace()argparse 模塊提供的一個(gè)類,用于創(chuàng)建“命名空間對(duì)象”。它是一種 輕量級(jí)的容器對(duì)象,可以用來存儲(chǔ)任意數(shù)量的屬性。

它的行為類似于 字典(dict),但有一個(gè)關(guān)鍵區(qū)別:

Namespace 允許你通過“點(diǎn)操作符”訪問數(shù)據(jù),而字典必須用中括號(hào)。

1. 為什么使用 Namespace?

因?yàn)樗尨a更易讀、更像對(duì)象。例如:

字典寫法(不好讀):

config["lr"]
config["batch_size"]

Namespace 寫法(好讀且常見于深度學(xué)習(xí)項(xiàng)目):

config.lr
config.batch_size

就像訪問一個(gè)類的屬性一樣,看起來更清晰、更結(jié)構(gòu)化。

2. Namespace 的本質(zhì)是什么?

你可以把 Namespace 理解為:

一個(gè)可以動(dòng)態(tài)添加字段的對(duì)象,它內(nèi)部用字典存儲(chǔ)數(shù)據(jù),但對(duì)外提供點(diǎn)訪問語法。

用“類”的感覺操作,但其實(shí)非常輕量。例如:

from argparse import Namespace
config = Namespace()
config.lr = 0.01
config.test = "測(cè)試"
print(f"測(cè)試{config.lr}")
print(f"文字{config.test}")
#測(cè)試0.01
#文字測(cè)試

內(nèi)部機(jī)制其實(shí)就是:

config.__dict__ == {"lr": 0.01, "batch_size": 64}

3. Namespace 示例

config = Namespace(
    datadir="./data/rawdata/ted2020",
    savedir="./checkpoints/rnn",
    source_lang="en",
    target_lang="zh",
    num_workers=2,
    max_tokens=8192,
    lr_factor=2,
    lr_warmup=4000,
)
#訪問方式:
print(config.savedir)
#./checkpoints/rnn

4. Namespace 和字典的關(guān)系

它們是可以互相替換的!

字典 → Namespace:

cfg_dict = {"lr": 0.001, "epoch": 30}
?
config = Namespace(**cfg_dict) # 轉(zhuǎn)為namespace對(duì)象
print(config.lr)   # 0.001
print(config.epoch) # 30
#Namespace → 字典:
config.__dict__

5. Namespace 在深度學(xué)習(xí)中的三個(gè)主要用途

用法 1:加載 YAML 配置

import yaml
from argparse import Namespace
cfg = yaml.safe_load(open("config.yaml"))  #這里返回的是一個(gè)字典,如果不轉(zhuǎn)的話,可能需要之前寫的用 . 訪問的方法要改一下。
config = Namespace(**cfg)

這讓 config.yaml 中的內(nèi)容變成:

config.lr
config.max_epoch

用法 2:命令行參數(shù)(argparse)

argparse 默認(rèn)返回的就是 Namespace:

import argparse
# 1. 創(chuàng)建解析器
parser = argparse.ArgumentParser(description="訓(xùn)練模型示例")
# 2. 添加你希望接受的參數(shù)
parser.add_argument("--lr", type=float, default=0.01)        # 學(xué)習(xí)率
parser.add_argument("--batch_size", type=int, default=64)    # batch大小
config = parser.parse_args()  #解析命令行參數(shù)
print(config.lr)

用法 3:訓(xùn)練腳本的“超參數(shù)容器”就像

config = Namespace(
    lr=0.001,
    max_epoch=30,
    batch_size=64,
)

Namespace 就像一個(gè)“字典 + 對(duì)象”結(jié)合體。它比字典更好讀,比類更輕量,因此非常適合存放程序配置和超參數(shù)。

到此這篇關(guān)于Python中Namespace()函數(shù)的文章就介紹到這了,更多相關(guān)Python Namespace()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

安仁县| 邵武市| 邛崃市| 六安市| 澄迈县| 资兴市| 辛集市| 淳化县| 右玉县| 双柏县| 河曲县| 财经| 七台河市| 扶沟县| 三原县| 花莲市| 闻喜县| 东阳市| 永顺县| 长泰县| 策勒县| 古浪县| 台中县| 武陟县| 仙游县| 三台县| 辉南县| 海丰县| 屯门区| 吴江市| 平南县| 泉州市| 祥云县| 台湾省| 赣榆县| 商河县| 台安县| 东至县| 睢宁县| 东阿县| 奉节县|