Colab运行StyleGAN2报Cannot cast <U1到int64错误如何解决
问题根因
报错的核心原因是传参顺序错配:
你定义的generate_images函数第一个形参是seeds_,要求接收整数/整数列表作为生成用的随机种子,而你调用函数时直接把字符串格式的图片路径/content/input/liang.jpg传给了第一个参数。程序执行到np.random.RandomState(seed)这一步时,拿到的seed是字符串,无法安全转换为int64类型的种子值,因此触发报错。
解决方案
根据你传入图片路径的目的,对应两种修复逻辑:
- 如果你是想使用默认的种子生成图,不需要传入额外参数,直接调用
generate_images()即可 - 如果你是想基于输入的
liang.jpg生成对应风格的图片,当前的generate_images逻辑不支持直接传入图片路径,需要先补充图片到隐向量的投影步骤:- 新增StyleGAN2投影代码,将输入的jpg图片转换为模型可接收的latent vector格式
- 调用函数时显式指定参数名,将投影得到的隐向量传给
latent_vector参数,示例调用方式:generate_images(latent_vector=你投影得到的隐向量变量)
额外注意点
你的代码中还存在一处隐患:生成label的时候使用了class_idx变量,但你在代码前半段没有定义这个变量的取值,如果你的模型是带类别条件的,需要先给class_idx赋值合法的类别序号,否则后续运行也会触发报错。
内容的提问来源于stack exchange,提问作者Jomeimoon
相关产品推荐
相关产品推荐

