Welcome to Narumi’s blog

Hi, I’m Narumi, a machine learning engineer.

TorchServe QuickStart 筆記

TorchServe QuickStart 筆記 Environment OS: MacOS Python Version: 3.9 首先用 pyenv virtualenv 建立 TorchServe 的環境: pyenv virtualenv 3.9.16 torchserve pyenv shell torchserve 把 TorchServe 的 repository 抓下來: git clone https://github.com/pytorch/serve.git cd serve Install Dependencies 安裝 dependencies python ./ts_scripts/install_dependencies.py 可以看到這個 script 中主要是安裝 Python 以外的 dependencies serve/ts_scripts/install_dependencies.py class Darwin(Common): def __init__(self): super().__init__() def install_java(self): if os.system("javac -version") != 0 or args.force: out = get_brew_version() if out == "N/A": sys.exit("**Error: Homebrew not installed...") os....

August 28, 2023 · 2 分鐘

Caramel Pudding

焦糖布丁 焦糖 糖60 水15 熱水30 糖4 水1 熱水2 糖20 水5 熱水10 布丁 作法 1 材料 雞蛋x4 牛奶 500g 砂糖 40g or 雞蛋 x 2 牛奶 250g 砂糖 20g 作法 2 材料 步驟 40g 砂糖 + 20cc 水 煮焦糖 把 1 倒入模具 牛奶 450cc + 香草莢(or 1 茶匙 香草精) 煮到冒煙 4顆雞蛋 + 80g 砂糖 + 50cc 鮮奶油 + 蘭姆酒 1/2 茶匙 混和 3 和 4 過濾 5 把 6 倒入模具 把模具放到裝水的鐵盤, 放入烤箱, 上下火全開, 120度, 45分鐘 (烤到布丁表面不晃) 冷卻 參考 https://youtu....

June 30, 2023 · 1 分鐘

Creme Brulee

法式烤布蕾 材料 (4人) 鮮奶油 300g 蛋黃 4顆 ~ 80g 香草莢 1/2 條 or 香草精 砂糖 30g + 最後撒在表面的 鹽 1g 步驟 鮮奶油 300g + 香草 1 加熱到稍微冒煙, 約80度 蛋黃4顆 + 砂糖 30g 攪拌, 攪拌時慢慢倒入 2 3 倒入模具, 用噴槍把氣泡噴掉, 用鋁箔紙包住 4 放入烤盤, 烤盤內放剛沸騰的熱水 5 放入預熱過的烤箱, 150度 40分 搖晃模具, 確定表面晃動是凝固的狀態即可取出 把布蕾放入冰箱冷藏 4~6 小時 撒砂糖, 噴出焦糖 參考 https://www.youtube.com/watch?v=I4Hzp5gqtqg https://youtu.be/3vib5idIADs https://youtu.be/H2hxl5Nu5iU

June 30, 2023 · 1 分鐘

運動對膝關節的影響

TL;DR 去深蹲啦 Papers Impact of exercise on articular cartilage in people at risk of, or with established, knee osteoarthritis: a systematic review of randomised controlled trials 不是隨機性分配的研究 此研究樣本數少(舉重運動員13,一般人20) 似乎舉重選手經過長時間訓練之後,膝蓋軟骨厚度會比正常人更厚一點 Mean femoral cartilage thickness is higher in athletes as compared with sedentary individuals 132位受測者 不活動生活型態43人,平均年齡24 運動族群89人,平均年齡22.7 運動族群的股骨在膝關節的部分厚度比較厚,兩腳都是。 多重線性回歸判斷運動是主因 餐與運動是獨立的因子,讓關節軟骨厚度更好 所以經常運動可以讓軟骨厚度增加 Impact of a daily exercise dose on knee joint cartilage - a systematic review and meta-analysis of randomized controlled trials in healthy animals systematic review and meta-analysis 29篇RCT的研究 運動量太低和運動量太高對軟骨健康有害 中量的運動對軟骨健康有益 Resistance exercise for knee osteoarthritis 用重量訓練打破膝退化性關節炎的惡性循環 改善下肢的力量 6~8RM 約 80% 1RM 12~15RM 約 60% 1RM 開始訓練之前要先和病患確認的幾個狀態 退化性關節炎的程度,只少是醫師判斷同意可以訓練的程度 關節活動度,可以正常活動不痛的角度 有無其他影響訓練因素,例如平衡或其他共病症等等 逐月評估學員的1RM並調整訓練計畫 疼痛?多數研究發現,強度高(6~8RM)的重量訓練對疼痛的改善是比較多的 功能?阻力訓練可以改善走路和上樓梯的速度 嚴重到需要等待換關節的病患,都能採用重量訓練來治療,不會讓症狀惡化,甚至可以加速手術後的復原,減少手術後兩側肢體的不平衡 References 身體負重訓練,對膝關節是有益還是勞損?(軟骨篇1/2) 膝退化性關節炎可以做重量訓練嗎?(軟骨篇2/2)

June 29, 2023 · 1 分鐘

Euler's formula

$$ e^{i \pi} = -1 $$

June 29, 2023 · 1 分鐘

Arrayfun With Gpuarray

動機 當我們需要把矩陣中的每一個元素都送進一個實數到實數的函數時,應該避免使用 for loop。我們可以使用簡單的技巧來達到我們的目的,例如: (x .^ 2) .* double(x > 0) 運算時 MATLAB 會做平行化的動作,但這樣的方法不是很理想。 MATLAB 提供了 arrayfun,我們可以定義單變數的實數函數,並且讓 MATLAB 改成矩陣函數,其中矩陣的每一個元素都是藉由帶入單變數實數函數得來,這樣可以使程式碼更容易閱讀,速度似乎也比較快。 另外numpy也有類似的方法 使用範例 定義函數 function y = fun(x) if x > 0 y = x^2; else y = 0; end 主程式 x = randn(1000, 1000, 'gpuArray'); f = @() (x .^ 2) .* double(x > 0); g = @() arrayfun(@fun, x); [timeit(f), timeit(g)] 確認兩個函數產生的結果是一樣的 norm((x .^ 2) .* double(x > 0) - arrayfun(@fun, x), 'fro') Reference https://www....

1 分鐘

Cross Entropy

Cross Entropy Binary Cross Entropy Given a dataset $D = \{ (x_1, y_1), \cdots, (x_n, y_n) \}$ where $x_i \in \mathbb{R}^d$ and $y_i \in \{ 1,0 \}$. Let $h: \mathbb{R}^d \rightarrow [0,1]$ be the function in hypothesis set and $\hat{y_i} = h(x_i)$ for all $i=1,\cdots, n$. Since we have $$ p(y_i=1|x_i) = \left\{\begin{array}{cc} h(x_i) & \text{ if } y_i = 1 \\ 1-h(x_i) & \text{ if } y_i = 0 \end{array} \right....

2 分鐘