Passion is like genius; a miracle.

Blog on Software, Statistics, and Quant

Tag: software

  • A way to optimize Modin DataFrame

    If Modin is slower than expected, first thing to check is NPartitions. Simply put, it’s the number of partitions along columns and the rows. Since most of data frame one would be handling will be large (otherwise, why would use ray?), it will result in many more partitions than the number of multiprocessing.cpu_count(). One way […]

  • Self paced learning in ML

    Self paced learning 이란 curriculum learning (데이터를 특정 순서로 주면서 모델을 훈련시키는 방법)의 일종입니다. 잘 작동할 경우 모델이 더 적은 데이터로 더 좋은 성능을 내게 됩니다. 하지만 Curriculum learning 은 모델에 점차적으로 난이도가 높아지는 순서대로 데이터를 주는데 그러려면 데이터에 ‘난이도’라는 추가 레이블링 작업이 필요하게 됩니다. Self paced learning 은 model 이 현재 주어진 데이터를 얼마나 […]

  • 리모드 서버에 ssh private key를 저장하지 않으려면

    Agent forwarding 을 쓰면 됩니다. 그러면 매번 서버에 키를 만들지 않아도 되고 특히 서버를 믿지 못하는 경우 (남의 서버를 임대한다거나) 보안 문제를 피할 수 있습니다.

  • What to do when resource is exhausted in GCE

    If “resource is exhausted” and can’t start a VM instance for that reason, one way would be creating reservations. Downside of that is that it’s too costly since “Reservations are billed at the same rate as their reserved resources”. Instead, one can try creating the instance in other cells. For that, they need do these […]

  • Auto shutdown idle gce instance

    There’s a few posts to do this on the net, but it looks like they miss some points, e.g., not resetting counts when a machine has been idle. This code is improved version. And then you can add it to your VM like this:

  • Timeseries dataset generation in tensorflow

    I find tf.keras.utils.timeseries_dataset_from_array difficult to use for the reasons like 1) it picks the first number in an array as y value (as opposed to the last), 2) it doesn’t allow to use multiple values as y. So I wrote a trivial code example that anyone can easily customize. In the code below, given [0, […]

  • Out of memory in 은 iterator에 있는 모든 입력을 submit 한 뒤에야 결과를 yield 합니다. 따라서 입력이 매우 크거나 무한의 데이터라면 out of memory 로 인해 죽게됩니다. 실제 에러는 이보다는 좀더 알기 어렵게 나오지만 메모리 사용량을 모니터링해보면 결국 메모리 탓인건 알 수 있습니다. Executor.map을 쓰겠다면 데이터를 잘라서 메모리에 맞게 주거나 아니면 producer consumer 형태로 큐에 데이터를 넣고 […]

  • Causal profiling

    실험적으로 일부 코드의 속도를 늦추거나 빠르게하면 해당 부분이 전체 latency 에 주는 영향을 알 수 있다는 방법이 causal profiling 입니다. 만약에 distributed critical path tracing 이 있다면 좋겠지만 그런건 만들기도 어렵고 정착시키기도 어렵기때문에 정말 똘똘한 아이디어인듯 합니다. 비슷한 사례로 legacy code deprecation을 할때 카운터 넣어서 legacy code 로 얼마나 많은 traffic 이 가는지 […]

  • Prompt Engineering 코스

    Andrew Ng 와 Open AI 엔지니어가 함께 만든 코스가 있어서 올립니다. ChatGPT Prompt Engineering for Developers

  • keras의 timeseries_dataset_from_array 사용시 주의할 점

    timeseries_dataset_from_array 에 대한 github issue 예를들어 X=[1, 2, 3], y=[2, 3, 4] 일때 sequence_length=2 라면 X=[1, 2], y=[3] 이 올거라고 생각하지만 아니다. y=[2]가 옴. 다시말해 y는 x 의 시작점의 값임. 간단하게는 y를 shift 해서 호출하면 해결되지만 API에 이런 점이 있다는걸 놓치기 너무 쉽다. 이슈가 그냥 닫혀버려서 더욱 아쉬움.