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。图像 ID 输入张量,形状为 (N, L, D),对应图像序列。
  • text:KerasTensor。文本输入张量,形状为 (N, L, D)。
  • text_ids:KerasTensor。文本 ID 输入张量,形状为 (N, L, D),对应文本序列。
  • timesteps:KerasTensor。用于计算位置嵌入的时间步张量。
  • y:KerasTensor。附加向量输入,例如目标值。
  • guidance:KerasTensor,可选。在引导嵌入模型中使用的引导输入张量。

引发

  • 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:字符串。一个内置预设标识符、一个 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,
)