Buckets:

mishig's picture
|
download
raw
8.26 kB
# AutoModel
[AutoModel](/docs/diffusers/v0.43.0/zh/api/models/auto_model#diffusers.AutoModel) 会自动从检查点的 `config.json` 文件中获取正确的模型类。
## AutoModel[[diffusers.AutoModel]]
#### diffusers.AutoModel[[diffusers.AutoModel]]
```python
diffusers.AutoModel(*args, **kwargs)
```
[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/auto_model.py#L27)
#### from_pretrained[[diffusers.AutoModel.from_pretrained]]
```python
from_pretrained(pretrained_model_or_path: str | os.PathLike | None = None, **kwargs)
```
[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/auto_model.py#L155)
**参数:**
pretrained_model_name_or_path (`str` 或 `os.PathLike`,*可选*) : 可以是以下之一: - 一个字符串,即托管在 Hub 上的预训练模型的 *model id*(例如 `google/ddpm-celebahq-256`)。 - 一个 *目录* 的路径(例如 `./my_model_directory`),其中包含使用 [save_pretrained()](/docs/diffusers/v0.43.0/zh/api/models/overview#diffusers.ModelMixin.save_pretrained) 保存的模型权重。
cache_dir (`str | os.PathLike`,*可选*):如果未使用标准缓存,则已下载的预训练模型配置将缓存到的目录路径。
dtype (`torch.dtype`,*可选*):覆盖默认的 `torch.dtype`,并使用其他 dtype 加载模型。
force_download (`bool`,*可选*,默认为 `False`):是否强制(重新)下载模型权重和配置文件,如果存在缓存版本则覆盖它们。
proxies (`dict[str, str]`,*可选*):一个字典,用于按协议或端点指定要使用的代理服务器,例如 `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`。每次请求都会使用这些代理。
output_loading_info (`bool`,*可选*,默认为 `False`):是否同时返回一个包含缺失键、意外键和错误消息的字典。
local_files_only(`bool`,*可选*,默认为 `False`):是否仅加载本地的模型权重和配置文件。如果设置为 `True`,则不会从 Hub 下载模型。
token (`str` 或 *bool*,*可选*) : 用于远程文件的 HTTP 承载者授权令牌。如果为 `True`,则使用由 `diffusers-cli login` 生成的令牌(存储在 `~/.huggingface` 中)。
revision (`str`,*可选*,默认为 `"main"`):要使用的特定模型版本。它可以是分支名称、标签名称、提交 ID,或 Git 允许的任何标识符。
subfolder (`str`,*可选*,默认为 `""`):模型文件在 Hub 或本地的大型模型仓库中的子文件夹位置。
mirror (`str`, *可选*) : 用于解决在中国下载模型时可能遇到的访问问题的镜像源。我们不保证该源的时效性或安全性,详情请参阅镜像站点。
device_map (`str` 或 `dict[str, int | str | torch.device]`,*可选*):一个映射,用于指定每个子模块应放置的位置。无需为每个参数/缓冲区名称单独定义;只要某个模块名称包含在内,其所有子模块都会被发送到同一设备。默认为 `None`,表示模型将在 CPU 上加载。设置 `device_map="auto"` 可让 🤗 Accelerate 自动计算最优的 `device_map`。有关各选项的更多信息,请参阅 [设计设备映射](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-device-map)。
max_memory (`Dict`, *可选*) : 用于指定最大内存的设备标识符字典。如果未设置,则默认为每个 GPU 的最大可用内存和可用的 CPU 内存。
offload_folder (`str` 或 `os.PathLike`,*可选*) : 如果 `device_map` 包含值 `"disk"`,则指定用于卸载权重的路径。
offload_state_dict (`bool`, *可选*) : 如果为 `True`,则临时将 CPU 状态字典卸载到硬盘,以避免在 CPU 状态字典的权重加上检查点中最大的分片无法容纳时耗尽 CPU 内存。当存在磁盘卸载时,默认值为 `True`。
low_cpu_mem_usage (`bool`,*可选*,如果 torch 版本 >= 1.9.0 则默认为 `True`,否则为 `False`):通过仅加载预训练权重而不初始化权重来加速模型加载。加载模型时,此参数还尝试将 CPU 内存使用量(包括峰值内存)控制在不超过 1 倍模型大小。仅支持 PyTorch >= 1.9.0。如果您使用的是旧版本的 PyTorch,将此参数设置为 `True` 将引发错误。
variant (`str`, *可选*) : 从指定的 `variant` 文件名(例如 `"fp16"` 或 `"ema"`)加载权重。
use_safetensors (`bool`,*可选*,默认为 `None`):如果设置为 `None`,则在 `safetensors` 权重可用**且**已安装 `safetensors` 库的情况下,会下载 `safetensors` 权重。如果设置为 `True`,则强制从 `safetensors` 权重加载模型。如果设置为 `False`,则不加载 `safetensors` 权重。
disable_mmap ('bool', *可选*,默认为 'False'):是否在加载 Safetensors 模型时禁用 mmap。当模型位于网络挂载点或硬盘上时,此选项可能表现更佳,因为这些存储设备可能无法很好地处理 mmap 的频繁寻址操作。
trust_remote_cocde (`bool`,*可选*,默认为 `False`):是否信任远程代码
从预训练模型配置实例化一个预训练的 PyTorch 模型。
模型默认处于评估模式 - `model.eval()` - ,且 dropout 模块已被禁用。若要训练模型,请使用 `model.train()` 将其切换回训练模式。
> [!TIP] > 若要使用私有或 [受限模型](https://huggingface.co/docs/hub/models-gated#gated-models),请先登录
使用 `hf > auth login`。您还可以启用特殊的 > ["offline-mode"](https://huggingface.co/diffusers/installation.html#offline-mode),以便在防火墙环境中使用此方法。
示例:
```py
from diffusers import AutoModel
unet = AutoModel.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", subfolder="unet")
```
如果出现以下错误消息,您需要针对下游任务微调权重:
```bash
Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.
```
#### from_config[[diffusers.AutoModel.from_config]]
```python
from_config(pretrained_model_name_or_path_or_dict: str | os.PathLike | dict | None = None, **kwargs)
```
[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/auto_model.py#L38)
**参数:**
pretrained_model_name_or_path_or_dict (`str`、`os.PathLike` 或 `dict`):可以是以下之一: - 一个字符串,即托管在 Hub 上的预训练模型配置的 *model id*(例如 `google/ddpm-celebahq-256`)。 - 一个指向包含模型配置文件的*目录*的路径(例如 `./my_model_directory`)。 - 一个配置字典。
cache_dir (`Union[str, os.PathLike]`,*可选*):如果未使用标准缓存,则已下载的预训练模型配置将缓存到的目录路径。
force_download (`bool`,*可选*,默认为 `False`):是否强制(重新)下载模型配置,如果存在缓存版本则覆盖它。
proxies (`Dict[str, str]`,*可选*):一个字典,用于按协议或端点指定要使用的代理服务器。
local_files_only(`bool`,*可选*,默认为 `False`):是否仅加载本地模型配置文件。
token (`str` 或 *bool*,*可选*):用于远程文件的 HTTP 承载者授权令牌。
revision (`str`,*可选*,默认为 `"main"`):要使用的特定模型版本。
trust_remote_code (`bool`,*可选*,默认为 `False`):是否信任远程代码。
subfolder (`str`,*可选*,默认为 `""`):模型文件在 Hub 或本地的大型模型仓库中的子文件夹位置。
**返回值:**
一个从配置实例化、权重随机的模型对象。
从配置字典或预训练模型配置文件实例化一个模型,并使用随机权重(不加载任何预训练权重)。
示例:
```py
from diffusers import AutoModel
model = AutoModel.from_config("stable-diffusion-v1-5/stable-diffusion-v1-5", subfolder="unet")
```

Xet Storage Details

Size:
8.26 kB
·
Xet hash:
653bfad67dea2e36a0f292eb2a15a2cd39294633376cb927e5d6bc06bb7e2838

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.