■
rle_encode の +2
については、
- pixel は 1 から、採番していくため、
+1
- 0番目と1番目の差異を index=0とするため、実際のmask は
+1
def rle_encode(mask): """ Ref. https://www.kaggle.com/paulorzp/run-length-encode-and-decode """ pixels = mask.flatten('F') pixels[0] = 0 pixels[-1] = 0 runs = np.where(pixels[1:] != pixels[:-1])[0] + 2 runs[1::2] = runs[1::2] - runs[:-1:2] return ' '.join(str(x) for x in runs)
rle_encode(np.array([0,1,1,0])) >>> '2 2'
plt.hist と sns.distplot の normed パラメータについて
plt.hist の normed=True
は 出現確率を表現するものではなく、面積的ななにかをnormize する方法っぽい。
sns.distplot も同様。
CTCのbeam search を読む
Pb(b, t)+=Ptot(b, t-1)·mat(blank, t)
の mat は最初に与えられた時系列のchar matrix のこと。
b: それまでappendされた文字列 のことっぽい。beamと書いてあるけど。
条件に従って、漸化式を計算していくと解けそう。
matplot の色をラベルで固定する方法
色の確認
import matplotlib as mpl import matplotlib.pyplot as plt def plot_colorMaps(cmap): fig, ax = plt.subplots(figsize=(4,0.4)) col_map = plt.get_cmap(cmap) mpl.colorbar.ColorbarBase(ax, cmap=col_map, orientation = 'horizontal') plt.show() for cmap_id in plt.colormaps(): print(cmap_id) plot_colorMaps(cmap_id)
色の固定
N = len(label) cmap = plt.cm.spectral # extract all colors from the .jet map np.random.seed(seed=32) clist = [cmap(np.random.randint(0, cmap.N)) for i in range(N)]
固定の色でplot
- 平均の上位5項目をplot
for idx in range(len(X)): plt.figure(figsize=(12,4)) for i in np.argsort(X[idx].mean(axis=0))[::-1][:5]: plt.plot(X[idx][:, i], label=label[i], color=clist[i]) plt.legend(loc='upper right') plt.title(NAME_MAP[LABEL_MAP[idx]]) plt.show()
色の数指定
my_pal = sns.color_palette(n_colors=10)
Plotly のセットアップで詰まった所
seaborn の stack の barplot が難しいので、Plotly で実施するように変更した。settings に手こずったので tips のURL を掲載。