你好,
我正在尝试运行textdiffusers,并遵循了所有说明。
当我使用:
accelerate launch train.py \
--train_batch_size=24 \
--gradient_accumulation_steps=4 \
--gradient_checkpointing \
--mixed_precision="fp16" \
--num_train_epochs=2 \
--learning_rate=1e-5 \
--max_grad_norm=1 \
--lr_scheduler="constant" \
--lr_warmup_steps=0 \
--output_dir="experiment_name" \
--enable_xformers_memory_efficient_attention \
--dataloader_num_workers=4 \
--character_aware_loss_lambda=0.01 \
--resume_from_checkpoint="latest" \
--drop_caption \
--mask_all_ratio=0.5 \
--segmentation_mask_aug \
--vis_num=8
时出现问题:
TypeError: get_down_block() got an unexpected keyword argument 'attn_num_head_channels'
(完整的错误报告在最后)
我知道问题所在,仓库要求从diffusers的源代码安装。
文件:"./textdiffuser/diffusers/src/diffusers/models/unet_2d_condition.py"
第291行调用"get_down_block",并传入一个参数"attn_num_head_channels",这在当前版本的diffusers中不存在。
因此,如果作者能分享他们使用的diffusers版本,那就太好了。
环境:
Ubuntu18.04
torch==1.13.1
torchvision==0.14.1
transformers==4.27.4
diffusers : -e git+https://github.com/huggingface/diffusers@fc6acb6b97e93d58cb22b5fee52d884d77ce84d8#egg=diffusers
完整的错误报告:File "train.py", line 506, in main unet = UNet2DConditionModel.from_pretrained( File "/workspace/unilm/textdiffuser/diffusers/src/diffusers/models/modeling_utils.py", line 563, in from_pretrained model = cls.from_config(config, **unused_kwargs) File "/workspace/unilm/textdiffuser/diffusers/src/diffusers/configuration_utils.py", line 232, in from_config model = cls(**init_dict) File "/workspace/unilm/textdiffuser/diffusers/src/diffusers/configuration_utils.py", line 604, in inner_init init(self, *args, **init_kwargs) File "/workspace/unilm/textdiffuser/diffusers/src/diffusers/models/unet_2d_condition.py", line 291, in __init__ down_block = get_down_block( TypeError: get_down_block() got an unexpected keyword argument 'attn_num_head_channels'
感谢你的帮助!
3条答案
按热度按时间t9aqgxwy1#
非常感谢您关注我们的工作!实际上,有几个关于替换文件的操作。您完成了这些操作吗?此外,在我的环境里,版本扩散器包是0.17.0.dev0。供您参考!
23c0lvtd2#
是的,我做了。
让我们继续讨论流程,一个使用你特定的:unet_2d_condition.py,第291行:
down_block = get_down_block( down_block_type, num_layers=layers_per_block, in_channels=input_channel, out_channels=output_channel, temb_channels=blocks_time_embed_dim, add_downsample=not is_final_block, resnet_eps=norm_eps, resnet_act_fn=act_fn, resnet_groups=norm_num_groups, cross_attention_dim=cross_attention_dim[i], **attn_num_head_channels=attention_head_dim[i],** downsample_padding=downsample_padding, dual_cross_attention=dual_cross_attention, use_linear_projection=use_linear_projection, only_cross_attention=only_cross_attention[i], upcast_attention=upcast_attention, resnet_time_scale_shift=resnet_time_scale_shift,
这个函数调用从unet_2d_blocks.py文件中调用get_down_block,并带有attn_num_head_channels参数。当前版本的diffusers ,在unet_2d_blocks.py的第32行,def get_down_block函数没有任何attn_num_head_channels参数。
https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/unet_2d_blocks.py 。
ghhaqwfi3#
我浏览了仓库https://github.com/huggingface/diffusers,发现"attn_num_head_channels"最近被移除了。或者,你可以使用以下命令安装扩散器:
希望这对你有帮助!