Skip to content

Instantly share code, notes, and snippets.

View ground0state's full-sized avatar

abetan ground0state

View GitHub Profile
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
import time
import logging
from contextlib import contextmanager
from typing import Optional
@contextmanager
def timer(name: str, logger: Optional[logging.Logger] = None):
t0 = time.time()
msg = f"[{name}] start"
import logging
def get_logger(out_file=None):
logger = logging.getLogger()
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
logger.handlers = []
logger.setLevel(logging.INFO)
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
import os
import random
import numpy as np
import torch
def set_seed(seed: int = 42):
random.seed(seed)
np.random.seed(seed)
os.environ["PYTHONHASHSEED"] = str(seed)
torch.manual_seed(seed)
class LayeredFoldWrapper(Dataset):
def __init__(self, dataset, n_splits=5, fold=0, valid=False):
self.dataset = dataset
self.n_splits = n_splits
self.fold = fold
self.valid = valid
self.valid_index = list(self._valid_index(len(dataset), n_splits, fold))
self.train_index = list(set(range(len(dataset))) - set(self.valid_index))
def __len__(self):
"""
MIT License
Copyright (c) 2017-2020 Packt, grouns0state
https://github.com/PacktPublishing/Artificial-Intelligence-with-Python/blob/master/LICENSE
"""
from sklearn.cluster import KMeans
from sklearn import metrics
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
"""
MIT License
Copyright (c) 2017-2020 Packt, grouns0state
https://github.com/PacktPublishing/Artificial-Intelligence-with-Python/blob/master/LICENSE
"""
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import MeanShift, estimate_bandwidth
from itertools import cycle
from sklearn.datasets import make_blobs
@ground0state
ground0state / makesoundfile.py
Created April 9, 2020 17:03
Python を使った WAVE ファイルの処理 LISENCE: CC-BY-NC-ND
"""
喜多 一,『プログラミング演習 Python 2019( コラム編 )』, 2020-02-13, http://hdl.handle.net/2433/245698
LISENCE: CC-BY-NC-ND
[参考資料]
桂田 祐史:Python を使った WAVE ファイルの処理、 http://nalab.mind.meiji.ac.jp/~mk/lecture/fourier-2018/python-sound/ (2018/12/3 アクセ ス)
"""
import numpy as np
import wave
# https://org-technology.com/posts/power-spectral-density.html
"""
適当な信号を作成して periodogram と welch で PSD を推定してみます。
下の例ではセグメント長 nseg はデフォルトで 256 なので、
ちょうど n/4 の長さです。
いくつかセグメント長を変えて推定した結果をプロットしています。
なおオーバーラップ noverlap はデフォルトのままで nseg/2、
つまり 50% オーバーラップして計算しています。
periodogramでは窓関数はデフォルトではなし(Boxcar と同じ)、
welch では Hanning です。
from scipy import fftpack, signal
import scipy
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
yorg = np.sin(x)
y = yorg + np.random.randn(100)*0.5