UserWarning: amplitude_to_db was called on complex input so phase information will be discarded. To suppress this warning, call amplitude_to_db(np.abs(S)) instead. CQT = librosa.amplitude_to_db(librosa.cqt(y, sr = 16000 ), ref = np. max )
时间: 2024-02-25 09:57:41 浏览: 321
这个警告表示amplitude_to_db函数被用在了复杂输入上,因此相位信息将被丢弃。为了避免这个警告,可以将输入转换成绝对值后再调用amplitude_to_db函数,即使用amplitude_to_db(np.abs(S))代替amplitude_to_db(S)。这样可以保留能量信息并且避免丢失相位信息。因此,可以将第6行修改为以下代码:
```
CQT = librosa.amplitude_to_db(np.abs(librosa.cqt(y, sr=16000)), ref=np.max)
```
这样就可以避免UserWarning了。
相关问题
userwarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. it currently rounds toward 0 (like the 'trunc' function not 'floor'). this results in incorrect rounding for negative values. to keep the current behavio
### 回答1:
这是一个警告提示,意味着在未来版本的PyTorch中,__floordiv__将不再使用,并且其行为将发生更改。当前,它向0舍入(类似于“trunc”函数而不是“floor”),这会导致负值的舍入不正确。为了保持当前行为,需要注意这个警告提示。
### 回答2:
近期在使用 PyTorch 进行深度学习训练过程中,可能会遇到一个 warning:
```python
UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of PyTorch.
It currently rounds toward 0 (like the 'trunc' function not 'floor').
This results in incorrect rounding for negative values.
To keep the current behavior, you can use //, floor_divide() or true_divide()
(with round_mode='floor') instead.
```
这个 warning 是表示 PyTorch 中的除法符号“//”和相应的函数 floor_divide() 和 true_divide() 将代替原来的 __floordiv__() 函数,同时 __floordiv__() 函数的行为将在未来的 PyTorch 版本中发生变化,如此时声明的般会向零舍入(类似于 'trunc' 函数而不是 'floor' 函数),这将导致负数的四舍五入不正确。
为了避免这种问题,可以在代码中将 __floordiv__() 函数改用 “//” 符号等代替方法,并将 round_mode 参数设置为“floor”。这样做可以保留当前行为,同时可以避免面临未来版本中的 warning 和问题。
总的来说,这个 warning 是 PyTorch 开发团队为了提高代码准确性和代码向后兼容性而发布的警告,开发者们应该积极跟进监测新版本的变化,并进行适当的代码调整。
### 回答3:
在PyTorch中,出现了"__floordiv__ is deprecated"的警告。该警告是在某些版本中出现的,预示着未来 PyTorch 版本中的行为可能会发生变化。在当前版本中,__floordiv__ 会向0取整(像 "trunc" 函数而不是 "floor" 函数)。这意味着在处理负数时会出现不正确的取整。
为了保持当前行为,可以使用 "floor_divide" 函数而不是 "__floordiv__" 函数。这个函数在PyTorch中有专门的实现,会对给定数组的每个元素执行向下调整。如果输入值为正,则表现与 "__floordiv__" 函数相同,但如果输入值为负,则会向负无穷方向舍入,而不是像之前那样向零方向舍入。
此外,建议使用"//"(双斜杠)操作符取代 "__floordiv__" 函数,这样既可以更好地表达代码意图,也可以避免由于函数行为更改而产生的问题。但是请注意,如果代码仍然使用 "__floordiv__" 函数,这并不会导致任何问题,只是会产生一个警告。
总之,尽可能使用 "floor_divide" 函数或 "//" 操作符,以避免由于 PyTorch 版本更改而引起的问题。同时注意警告信息,及时更新代码。
C:\Program Files\python\lib\site-packages\flask_sqlalchemy\__init__.py:851: UserWarning: Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. Defaulting SQLALCHEMY_DATABASE_URI to "sqlite:///:memory:". warnings.warn( C:\Program Files\python\lib\site-packages\flask_sqlalchemy\__init__.py:872: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True or False to suppress this warning. warnings.warn(FSADeprecationWarning(
这些警告信息是关于 Flask SQLAlchemy 的一些默认设置和即将弃用的功能的提醒。你可以根据需要采取一些措施来解决这些警告。
1. `Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set.` 这个警告是因为你没有设置数据库的连接 URI。你可以通过设置 `SQLALCHEMY_DATABASE_URI` 环境变量或在 Flask 应用程序中配置 `app.config['SQLALCHEMY_DATABASE_URI']` 来指定数据库的连接 URI。例如:
```python
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mydatabase.db'
```
2. `SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.` 这个警告是因为 SQLAlchemy 的 `SQLALCHEMY_TRACK_MODIFICATIONS` 默认值为 True,启用了对数据库修改的跟踪,但这会带来一些性能开销。在将来的版本中,这个功能将被默认禁用。你可以根据需要将其设置为 True 或 False 来避免这个警告。例如:
```python
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
```
请注意,在实际应用中,你需要根据你的具体情况进行适当的配置和修改。
阅读全文