当前位置: 首页 > article >正文

conda环境下numpy模块ValueError: setting an array element with a sequence.问题解决

1 问题描述

[Info] Using cuda for inference.
[Step 0] Number of frames available for inference: 9828
[Step 1] Using saved landmarks.
[Step 2] 3DMM Extraction In Video::   0%|                                                                                                                        | 0/9828 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "inference.py", line 345, in <module>
    main()
  File "inference.py", line 103, in main
    trans_params, im_idx, lm_idx, _ = align_img(frame, lm_idx, lm3d_std)
  File "/opt/video-retalking/third_part/face3d/util/preprocess.py", line 196, in align_img
    trans_params = np.array([w0, h0, s, t[0], t[1]])
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (5,) + inhomogeneous part.

2 问题分析

查看问题代码:

   # calculate translation and scale factors using 5 facial landmarks and standard landmarks of a 3D face
    t, s = POS(lm5p.transpose(), lm3D.transpose())
    s = rescale_factor/s

    # processing the image
    img_new, lm_new, mask_new = resize_n_crop_img(img, lm, t, s, target_size=target_size, mask=mask)
    trans_params = np.array([w0, h0, s, t[0], t[1]])

 np.array调用出现问题,存在数据对齐问题。

查看conda环境下的numpy版本,版本号为numpy==1.23.4

(retalking) [root@localhost video-retalking]# pip list
Package                   Version
------------------------- ---------------
jsonpatch                 1.33
jsonpointer               2.4
jsonschema                4.20.0
jsonschema-specifications 2023.11.1
kiwisolver                1.4.5
kornia                    0.5.1
lazy_loader               0.3
libmambapy                1.5.3
librosa                   0.9.2
llvmlite                  0.41.1
lmdb                      1.4.1
Markdown                  3.5.1
markdown-it-py            3.0.0
MarkupSafe                2.1.3
matplotlib                3.7.4
mdurl                     0.1.2
networkx                  3.1
ninja                     1.10.2.3
numba                     0.58.1
numexpr                   2.8.4
numpy                     1.23.4
oauthlib                  3.2.2
opencv-python             4.8.1.78
orjson                    3.9.10
packaging                 23.2
pandas                    2.0.3
Pillow                    10.1.0
pip                       23.3.1
pkgutil_resolve_name      1.3.10
platformdirs              4.0.0
pluggy                    1.3.0
pooch                     1.8.0

3 问题解决

降低numpy的版本到1.22.0,再次运行程序,不再报错。

pip install numpy==1.22.0

 4 conda环境介绍

Conda是一个开源的包管理器和环境管理系统,用于安装、运行和更新包和其依赖项。它是由Anaconda, Inc.(以前称为Continuum Analytics)创建,用于支持Python程序开发,但它也可以用来管理来自其他语言的包。Conda使得包管理和环境隔离变得简单,对于处理多个项目中的依赖关系和版本控制尤其有用。

Conda是一个强大的工具,对于管理复杂的Python项目和环境至关重要。它简化了包管理和环境设置,使得Python开发更加容易和高效。通过使用Conda,开发者可以确保他们的项目在不同机器和操作系统上都能以相同的方式运行,大大提高了项目的可移植性和可复现性。

4.1 Conda的核心功能

  • 包管理:Conda作为包管理器,可以安装、更新和移除Python包。它通过Conda仓库,如Anaconda Cloud或Conda Forge,来获取包。

  • 环境管理:Conda允许用户创建隔离的环境,以便于不同项目可以拥有不同的库和/或Python版本。这在处理不兼容的依赖项或不同项目的需求时非常有用。

  • 跨平台:Conda支持Linux、OS X和Windows,并允许创建跨平台的Python环境。

  • 开源:Conda是开源的,允许用户查看源代码并对其进行改进。

4.2 使用Conda的优势

  • 解决依赖性问题:Conda可以自动解决包之间的依赖关系,简化了安装过程。

  • 环境隔离:创建独立的环境可以避免包之间的版本冲突,使得项目更稳定。

  • 易于使用:Conda的命令行界面简单直观,易于学习和使用。

  • 广泛的包支持:Conda支持Python的许多流行库和应用程序。

  • 社区支持:作为一个流行的工具,Conda拥有一个活跃的社区,用户可以从中找到支持和资源。

4.3 Conda环境的创建和管理

  • 创建新环境:使用conda create命令创建一个新环境,可以指定Python版本和所需的包。

  • 激活环境:使用conda activate命令来激活环境。

  • 安装包:在激活的环境中使用conda install命令来安装新的包。

  • 环境列表:使用conda env list来查看所有可用的Conda环境。

  • 移除环境:使用conda env remove命令来移除不再需要的环境。

4.4 应用场景

  • 数据科学和机器学习:Conda非常适合于数据科学和机器学习项目,这些项目通常需要多个库和框架。

  • 软件开发:软件开发者使用Conda来管理项目依赖,确保一致的开发环境。

  • 教学和学术研究:教师和研究人员使用Conda来创建具有特定库和工具的环境,用于教学和研究。


http://www.kler.cn/a/154263.html

相关文章:

  • 使用nossl模式连接MySQL数据库详解
  • MATLAB向量元素的引用
  • STM32 Option Bytes(选项字节)
  • 调用门提权
  • SpringBoot使用AspectJ的@Around注解实现AOP全局记录接口:请求日志、响应日志、异常日志
  • 【书生大模型实战营 闯关材料】入门岛:第4关 玩转HF/魔搭/魔乐社区
  • 计算机 Wi-Fi 掉线后重新连接并恢复网络访问(GPT4)
  • 修改apt-get的出口IP
  • 一篇带你串通数据结构
  • node的proxy-server使用
  • 【力扣1929】数组串联
  • Android 13 - Media框架(15)- OpenMax(三)
  • 微前端qiankun示例 Umi3.5
  • matlab 汽车单车模型固定点跟踪算法
  • io基础入门
  • CPU 使用率和负载Load
  • golang Pool实战与底层实现
  • k8s(三): 基本概念-ReplicaSet与Deployment
  • TA-Lib学习研究笔记——Price Transform (五)
  • 阿里千问Qwen-72 b在中文测试中击败了GPT-3.5
  • 【Matlab】如何快速入门一项新技能-以Matlab/Simulink入门为例
  • C语言中的格式化输出符号:%d %c %p %x等
  • 750mA Linear Charger with Power Path Management
  • Windows安装Mysql Workbench及常用操作
  • vscode一直不能跳转函数定义或者别的定义c_cpp_properties.json、settings.json
  • 七、ZooKeeper选举机制