在 Python pandas 中,我有一个大数据框,如下所示:
df = pd.DataFrame ({'a' : ['foo', 'bar'] * 3,
'b' : ['foo2', 'bar2'] * 3,
'c' : ['foo3', 'bar3'] * 3,
'd' : ['q','w','e','r','t','y'],
'e' : ['q2','w2','e2','r2','t2','y2']})
a b c d e
1 bar bar2 bar3 w w2
3 bar bar2 bar3 r r2
5 bar bar2 bar3 y y2
4 foo foo2 foo3 t t2
2 foo foo2 foo3 e e2
0 foo foo2 foo3 q q2
Run Code Online (Sandbox Code Playgroud)
它包含一打具有重复值(a、b、c...)的列和一些具有唯一值(d、e)的列。我想删除所有重复的值并收集那些唯一的值,即:
a b c d e
1 bar …Run Code Online (Sandbox Code Playgroud) 我已经根据这篇文章向我的 Elastic Beanstalk 环境提供了 nginx 配置。我的应用程序位于 Docker 容器中。问题是环境重新加载nginx失败。
这是我的配置文件:
files:
"/etc/nginx/conf.d/proxy.conf" :
mode: "000644"
owner: root
group: root
content: |
client_max_body_size 500M;
container_commands:
01_reload_nginx:
command: "sudo service nginx reload"
Run Code Online (Sandbox Code Playgroud)
这导致失败(之后/var/log/eb-activity.log):
EmbeddedPostBuild/postbuild_0_audio_explorer] : Starting activity...
[2019-03-04T21:45:01.064Z] INFO [3274] - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_audio_explorer/Command 01_reload_nginx] : Starting activity...
[2019-03-04T21:45:01.100Z] INFO [3274] - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_audio_explorer/Command 01_reload_nginx] : Activity execution failed, because: (ElasticBeanstalk::ExternalInvocationError)
[2019-03-04T21:45:01.100Z] INFO [3274] - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_audio_explorer/Command 01_reload_nginx] : Activity failed.
[2019-03-04T21:45:01.100Z] INFO [3274] - [Application deployment …Run Code Online (Sandbox Code Playgroud) 我将一些音频文件转换为频谱图并使用以下代码将它们保存到文件中:
import os
from matplotlib import pyplot as plt
import librosa
import librosa.display
import IPython.display as ipd
audio_fpath = "./audios/"
spectrograms_path = "./spectrograms/"
audio_clips = os.listdir(audio_fpath)
def generate_spectrogram(x, sr, save_name):
X = librosa.stft(x)
Xdb = librosa.amplitude_to_db(abs(X))
fig = plt.figure(figsize=(20, 20), dpi=1000, frameon=False)
ax = fig.add_axes([0, 0, 1, 1], frameon=False)
ax.axis('off')
librosa.display.specshow(Xdb, sr=sr, cmap='gray', x_axis='time', y_axis='hz')
plt.savefig(save_name, quality=100, bbox_inches=0, pad_inches=0)
librosa.cache.clear()
for i in audio_clips:
audio_fpath = "./audios/"
spectrograms_path = "./spectrograms/"
audio_length = librosa.get_duration(filename=audio_fpath + i)
j=60
while j < audio_length: …Run Code Online (Sandbox Code Playgroud) 我正在 Makefile 中创建 conda 环境。但是,如果已经创建了此环境,我想跳过该步骤。我如何检查以下内容:
CONDA_ENV_NAME := myname
ifeq (,$(shell which conda))
HAS_CONDA=False
else
HAS_CONDA=True
CONDA_ACTIVATE=source $$(conda info --base)/etc/profile.d/conda.sh ; conda activate ; conda activate
endif
environment:
ifeq (True,$(HAS_CONDA))
@echo ">>> Detected conda, creating conda environment."
## Here I'd like to check if this environment already exists
conda env create -f environment.yml -n $(CONDA_ENV_NAME)
## ... and if the env should be activated (optional)
$(CONDA_ACTIVATE) $(CONDA_ENV_NAME)
else
@echo ">>> Install conda first."
endif
Run Code Online (Sandbox Code Playgroud) 我的脚本正在调用librosa模块来计算短音频的 Mel 频率倒谱系数 (MFCC)。加载音频后,我想尽可能快地计算这些(以及其他一些音频功能) - 因此进行多处理。
问题:多处理变体比顺序慢得多。分析说我的代码花费了超过 90% 的时间在<method 'acquire' of '_thread.lock' objects>. 如果它是许多小任务,这并不奇怪,但在一个测试用例中,我将音频分成 4 个块,然后在单独的进程中处理。我认为开销应该最小,但实际上,它几乎和许多小任务一样糟糕。
据我所知,多处理模块应该分叉几乎所有的东西,并且不应该有任何争夺锁的斗争。然而,结果似乎显示出不同的东西。可能是下面的librosa模块保持某种内部锁吗?
我的分析结果为纯文本:https : //drive.google.com/open?id=17DHfmwtVOJOZVnwIueeoWClUaWkvhTPc
作为图片:https : //drive.google.com/open?id=1KuZyo0CurHd9GjXge5CYQhdWn2Q6OG8Z
重现“问题”的代码:
import time
import numpy as np
import librosa
from functools import partial
from multiprocessing import Pool
n_proc = 4
y, sr = librosa.load(librosa.util.example_audio_file(), duration=60) # load audio sample
y = np.repeat(y, 10) # repeat signal so that we can get more reliable measurements
sample_len = int(sr …Run Code Online (Sandbox Code Playgroud) 我正在尝试建立一个推理管道。它由两部分组成。使用前几年的一些表格订单元数据进行每月 ML 模型训练,并使用当天的新订单进行每日推理预测。我想在我的模型中包含几个字符串分类列,我使用 labelencoder 将它们转换为整数。我想知道如何确保在数据预处理期间将日常推理数据集转换为相同的类别。我应该保存标签编码器的字典并映射到我的推理数据集吗?谢谢。
目标: 将 tensorflow .pb 模型转换为 tensorrt
系统规格: Ubundu 18.04 Cuda 10.0 TensorRT 5.1
连安装 sudo apt-get install uff-converter-tf
尝试uff在 Python 中导入时出错:
ModuleNotFoundError: 没有名为“uff”的模块
python ×6
audio ×2
librosa ×2
anaconda ×1
conda ×1
data-science ×1
inference ×1
makefile ×1
nginx ×1
pandas ×1
performance ×1
spectrogram ×1
tensorflow ×1
tensorrt ×1
uff ×1