LeetCode

1799. Maximize Score After N Operations

Dailyで出てきたHardの問題。解説を見るとビットマスキングとDPを使っていて難しい。もっと単純に、素直に解けたので備忘録。もちろん最適解ではない。成約を見ると以下の通りである。1 <= n <= 7nums.length == 2 *...
Deep Learning

TFRecordsでmodel.fitする時にメモリリークが起きてメモリ使用量が増え続けてしまう

大量のTFRecordsを使い、tf.dataでモデルの訓練をしていた際、メモリの使用量が増え続け、Out of Memoryになってしまっていた。仮想メモリ(スワップ)を3TB程度用意してみたが、スワップも食い続けてしまったため、ハードの...
Python

メモリに乗り切らない大量のデータの平均値と標準偏差をWelfordアルゴリズムで逐次計算する

Kaggleに取り組んでいた時、大量のデータセットが与えられた。一般的に、ニューラルネットに入力するデータは標準化している方がいいと言われているが、データが大量にあってメモリに乗り切らず、sklearn.preprocessing.Stan...
Python

PyQt5とOpenCVを同時に使おうとしてエラー If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config

PyQt5のアプリケーションを弄っていた時に、cv2.imshow()をしようとしたら表題のエラー。If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, ...
LeetCode

LeetCode Biweekly Contest 97の解法

問題ページはこちら。2553. Separate the Digits in an Array与えられた数値を1桁ずつ返す問題。整数で与えられるので、文字列として解釈して1文字ずつ解を得ればOK。class Solution: def...
LeetCode

907. Sum of Subarray Minimums

mediumとは思えない難しさだったので備忘録。与えられた配列からすべての部分列を作り、各部分列の最小値の合計を求める問題。Input: arr = Output: 17Explanation:Subarrays are , , , , ,...
LeetCode

1235. Maximum Profit in Job Scheduling

daily challengeで出てきて難しかったので備忘録。n個のjobのstartTime, endTime, profitが与えられ、スケジュールが重複しないように利益を最大化する問題。全探索を考えた時、jobを選ぶ / 選ばないの2...
Prometheus

Prometheusのクエリに正規表現を使ってワイルドカードを実現する

Prometheusのクエリを書いていた時、共通するprefix / postfixを持つmetricsやjobを集計したくなり、ワイルドカードを使いたくなった。Prometheusでワイルドカードを直接使う方法を見つけることができなかった...
Deep Learning

GPUでfitしてCPUでpredictすることでTensorFlowのOOMを回避する

TensorFlowで大量の画像や巨大な配列をpredictするとメモリーリークが生じることが多い。model.fitでは問題ないのに、model.predictになるとOOMになってしまう報告が散見する。根本的な解決ではないが、predi...
Deep Learning

TensorFlowでscipyのsparse matrixを学習に使う

巨大な疎行列をmodel.fit()させようとした時、numpyのままだとメモリに乗り切らなかったため、scipyの疎行列でtf.kerasを使う方法がないか調べてみた。まずは公式チュートリアルを見てみる。TensorFlowは、 tf.S...