记录代码运行时的一些errors

日常记录:CNN for Single Channel Speech Enhancement

记录在运行CNN for Single Channel Speech Enhancement 的开源代码时出现的一些bug,以及解决方法。

前言 
本人深度学习小白一个,更没有太多的实战经验,主要研究方向是single channel speech enhancement。
由于导师要求跑一个deep learning-based method,时间比较紧,就先找了个开源的代码跑跑看。
写这篇blog也是为了记录跑程序过程中的一些bug,还希望有经验的人多多指教。

准备工作 
首先要把自己的speech data和noise data放在相应的文件中,修改SENN_rain.py中的location。
这点在readme中也说的比较清楚了。
但是,用于validation的speech和noise到底要用多少,我暂时真的还不是很懂,多跑几次看下效果吧。

install tensorflow==0.11.0

export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0-cp27-none-linux_x86_64.whl 
pip install --upgrade $TF_BINARY_URL

install numpy==1.11.0

pip install numpy==1.11.0

install librosa==0.5.1

pip install librosa==0.5.1

error1

TypeError: expected string or buffer

运行到librosa相关代码是出现这类问题,这是因为joblib的版本不对应,应该安装joblib==0.11版本。

pip/conda uninstall joblib
pip/conda install joblib==0.11

注:‘/’符号表示二者均可,取其一。

error2

TypeError: 'numpy.float64' object cannot be interpreted as an index #4

第一次出现这个error时,我按照stackoverflow上的提示将1.15.1版本的numpy改成了1.11.0版本的numpy,但是发现在运行的时候依旧出现了这个错误,后来还是找到了解决方法

Yes i did some research and discovered that floating point indices was finally removed from numpy 1.12.
so the walk around was the cast all indices to int.
data_frames = stride_tricks.as_strided(
data,
shape=(int(num_iter), int(self.N_IN), 2, int(self.frame_length)),
strides=(
int(data.strides[1] * self.frame_move),
int(data.strides[1] * self.frame_move),
int(data.strides[0]),
int(data.strides[1])))
This works fine.

error3

'ImportError: numpy.core.multiarray failed to import 

解决方法: 安装了两个不同版本的numpy,卸载其中一个numpy即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Python自带的time模块来测试这段代码的运行消耗。具体步骤如下: 1. 在代码开始前记录时间戳。 ```python import time start_time = time.time() ``` 2. 在代码结束后记录时间戳。 ```python end_time = time.time() ``` 3. 计算代码运行时间。 ```python run_time = end_time - start_time print("代码运行时间:%.3f秒" % run_time) ``` 完整示例: ```python import time from kafka import KafkaProducer, KafkaConsumer from kafka.errors import KafkaError # 生产者函数,用于将数据发送到Kafka消息队列 def producer(topic, data): try: # 创建Kafka生产者实例 producer = KafkaProducer(bootstrap_servers=['localhost:9092']) # 将数据发送到指定的主题 producer.send(topic, data.encode('utf-8')) # 关闭Kafka生产者实例 producer.close() except KafkaError as e: print("发送数据到Kafka消息队列失败:%s" % str(e)) # 消费者函数,用于从Kafka消息队列中读取数据 def consumer(topic): try: # 创建Kafka消费者实例 consumer = KafkaConsumer(topic, bootstrap_servers=['localhost:9092']) for msg in consumer: # 将从Kafka消息队列中读取到的数据返回 yield msg.value.decode('utf-8') # 关闭Kafka消费者实例 consumer.close() except KafkaError as e: print("从Kafka消息队列读取数据失败:%s" % str(e)) # 测试代码运行时间 start_time = time.time() # 生产者向主题为'test'的Kafka消息队列发送数据 producer('test', 'hello, Kafka!') # 消费者从主题为'test'的Kafka消息队列中读取数据 for msg in consumer('test'): print(msg) # 计算代码运行时间 end_time = time.time() run_time = end_time - start_time print("代码运行时间:%.3f秒" % run_time) ``` 你可以在代码中适当修改,测试不同的情况下代码的运行消耗。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值