KerasHub:预训练模型 / API 文档 / 模型架构 / Flux / FluxBackbone 模型

FluxBackbone 模型

[源代码]

FluxBackbone

keras_hub.models.FluxBackbone(
    input_channels,
    hidden_size,
    mlp_ratio,
    num_heads,
    depth,
    depth_single_blocks,
    axes_dim,
    theta,
    use_bias,
    guidance_embed=False,
    image_shape=(None, 768, 3072),
    text_shape=(None, 768, 3072),
    image_ids_shape=(None, 768, 3072),
    text_ids_shape=(None, 768, 3072),
    y_shape=(None, 128),
    **kwargs
)

用于序列流匹配的 Transformer 模型。

该模型处理带有相关位置和时间步嵌入的图像和文本数据,并可选择应用引导嵌入。双流块处理独立的图像和文本流,而单流块则将这些流合并。移植自:https://github.com/black-forest-labs/flux

参数

  • input_channels: int。输入通道数。
  • hidden_size: int。Transformer 的隐藏层大小,必须能被 num_heads 整除。
  • mlp_ratio: float。MLP 维度与隐藏层大小的比例。
  • num_heads: int。注意力头的数量。
  • depth: int。双流块的数量。
  • depth_single_blocks: int。单流块的数量。
  • axes_dim: list[int]。用于位置嵌入轴的维度列表。
  • theta: int。位置嵌入的基础频率。
  • use_bias: bool。是否将偏置应用于查询、键和值投影。
  • guidance_embed: bool。如果为 True,则在模型中应用引导嵌入。

调用参数

  • image: KerasTensor。形状为 (N, L, D) 的图像输入张量,其中 N 是批次大小,L 是序列长度,D 是特征维度。
  • image_ids: KerasTensor。形状为 (N, L, D) 的图像 ID 输入张量,对应于图像序列。
  • text: KerasTensor。形状为 (N, L, D) 的文本输入张量。
  • text_ids: KerasTensor。形状为 (N, L, D) 的文本 ID 输入张量,对应于文本序列。
  • timesteps: KerasTensor。用于计算位置嵌入的时间步张量。
  • y: KerasTensor。额外的向量输入,例如目标值。
  • guidance: KerasTensor, optional。在应用了引导嵌入的模型中使用的引导输入张量。

引发

  • ValueError: 如果 hidden_size 不能被 num_heads 整除,或者如果 sum(axes_dim) 不等于位置嵌入维度。

[源代码]

from_preset 方法

FluxBackbone.from_preset(preset, load_weights=True, **kwargs)

从模型预设实例化一个 keras_hub.models.Backbone

预设是一个包含配置、权重和其他文件资源的目录,用于保存和加载预训练模型。preset 可以作为以下之一传递:

  1. 一个内置的预设标识符,如 'bert_base_en'
  2. 一个 Kaggle Models 句柄,如 'kaggle://user/bert/keras/bert_base_en'
  3. 一个 Hugging Face 句柄,如 'hf://user/bert_base_en'
  4. 一个 ModelScope 句柄,例如 'modelscope://user/bert_base_en'
  5. 一个本地预设目录的路径,如 './bert_base_en'

此构造函数可以通过两种方式之一调用。要么从基类调用,如 keras_hub.models.Backbone.from_preset(),要么从模型类调用,如 keras_hub.models.GemmaBackbone.from_preset()。如果从基类调用,则返回对象的子类将根据预设目录中的配置进行推断。

对于任何 Backbone 子类,您可以运行 cls.presets.keys() 来列出该类上所有可用的内置预设。

参数

  • preset:字符串。一个内置预设标识符、一个 Kaggle Models 句柄、一个 Hugging Face 句柄或一个本地目录的路径。
  • load_weights:布尔值。如果为 `True`,权重将被加载到模型架构中。如果为 `False`,权重将被随机初始化。

示例

# Load a Gemma backbone with pre-trained weights.
model = keras_hub.models.Backbone.from_preset(
    "gemma_2b_en",
)

# Load a Bert backbone with a pre-trained config and random weights.
model = keras_hub.models.Backbone.from_preset(
    "bert_base_en",
    load_weights=False,
)