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 模型。

该模型处理图像和文本数据,并关联位置和时间步嵌入,可选择应用 guidance 嵌入。双流块处理独立的图像流和文本流,而单流块则合并这些流。移植自: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。是否对 query、key 和 value 投影应用偏置。
  • guidance_embed:bool。如果为 True,则在模型中应用 guidance 嵌入。

调用参数

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

抛出异常

  • 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. 本地预设目录的路径,例如 './bert_base_en'

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

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

参数

  • preset:string。内置预设标识符、Kaggle Models 句柄、Hugging Face 句柄或本地目录的路径。
  • load_weights:bool。如果为 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,
)