- kill -9 PID does not release memory
Ö>
Thứ Bảy, 9 tháng 10, 2021
linux tricks
Thứ Sáu, 24 tháng 9, 2021
Jupyter notebook tricks
1. Merge multiple Jupyter Notebook cells into one
a. Let imagine that you have written thousands line of codes. And suddenly, you want to run the entire cells all over again with just one or two values changed.
Guess what? You will need to scroll up -> change the value -> run the notebook time and time again. The bad thing here is that you need to wait for one loop to finish before manually scrolling up and change the value.
SUCKS!
So here let's put all the code in a loop by after merging all the cells into one using Shift + M.
Thứ Bảy, 11 tháng 9, 2021
python OOP with pytorch
1. Diplay properties of an object in python (e.g. DataLoader)
ipdb> dir(train_loader.dataset) ['__add__', '__class__', '__class_getitem__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__len__', '__lt__', '__module__', '__ne__', '__new__', '__orig_bases__', '__parameters__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_format_transform_repr', '_is_protocol', '_repr_indent', 'class_to_idx', 'classes', 'extensions', 'extra_repr', 'find_classes', 'imgs', 'loader', 'make_dataset', 'root', 'samples', 'target_transform', 'targets', 'transform', 'transforms'] ipdb> train_loader.dataset.class_to_idx
Here class_to_idx is a nice property of you want to make sure how ImageFolder assigned unique IDs to your human-readable class IDs.
2. DataLoader is super slow
Even if I load the data manually, the speedup comes to around 10 times. WTHH??
Thứ Hai, 6 tháng 9, 2021
pytorch frequent errors and solutions
1. CUDA memory overflow (if you have multiple GPUs)
- If you have multiple GPUs, you are able to run pytorch operations (e.g. toch.argsort) on all of them, not just a single GPU.
- Let's take this snippet as an example:
Ok, for each 800 input samples, I sent the batch to another CPU with a specified ID by the batch_idx.
2. Load a Python object saved to GPU to CPU
- I did a stupid job when I saved a dictionary containing some GPU tensors to a .npy file.
- Then when I load the npy file, my GPUs had been dominated and ran out of memory.
- Hell yeah, I googled a lot but not find any solutions to load only a part of the file or load the dictionary directly to CPU.
- Suddenly, I think that, Oh, I can load the dictionary to GPU, then move the tensor back to CPU then overwrite the dictionary. Haha. How smart I am!
Thứ Sáu, 27 tháng 8, 2021
Nhớ nhà 1
Tôi đã qua Mỹ được 1 tuần, cả 1 tuần chạy tất tả làm mọi giấy tờ. Tôi đã không thực sự thấy nhà trong tuần vừa qua, nhưng hôm này đây, một ngày chủ nhật thảnh thơi, ngó ra ngoài ban công thật nhiều gió, tôi bỗng thấy nhớ da diết và cảm nhận từng câu chữ của bài Home - Michael Buble.
Thu đến rồi!
Nắng phai dần, cả màu sắc lẫn sự bỏng rát của nó. Gió hoang hoải thổi qua những khóm hoa trắng nhỏ bên kia đường. Auburn là một thành phố yên bình, ít nhất là khi tôi đang sống. Thỉnh thoảng bên đường, tôi thấy có vài người chạy bộ, một hình ảnh bình thường nhưng nó gợi nhớ về VN trong tôi. Họ chạy bộ vì những con đường là của họ, họ quen những con phố, những giao lộ, và đôi chân đã quen những sỏi đá ở đây.
Nhưng tôi thấy xa lạ và tự nghĩ chắc mình sẽ chẳng bao giờ bên kia đường và chạy như họ vì vốn dĩ đây không phải là đường của tôi. Liệu những người nước ngoài đến VN và nhìn thấy người Việt chạy bộ ngoài đường, trong công viên có nghĩ giống tôi không nhỉ?
Chủ Nhật, 30 tháng 5, 2021
Những lời ca Ngô Thụy Miên
Anh từng hát Cho em mùa thu
Trong những đêm ánh trăng vương áo mỏng
Tóc em mềm bay theo chiều gió lộng
Đường anh về, nghe lối cũ lao xao
Em có còn nhớ những ráng chiều
Anh ôm em hát bài Niệm khúc cuối
Dẫu cơn mưa còn về giăng khắp lối
Anh xin đưa em, đến cuối cuộc đời
Hai phương trời, xa cách hai phương trời
Hoa có còn hồng không em? Độ ấy
Tình bơ vơ còn lời gì trăn trối
Gửi về nhau, cho gối mộng bình yên
Thứ Tư, 7 tháng 10, 2020
Tại sao memory bị tràn khi chạy chương trình DL
Khi chạy chương trình nào, ta chỉ nên chạy chương trình đó thôi.
Ví dụ mình từng mắc 1 lỗi, mình chạy chương trình trên jupyter notebook.
Mình chạy chương trình A, sau đó chạy B, tuy nhiên do A và B dùng chung vài biến toàn cục, mình vẫn để chương trình A ở đó mà không clear đi.
Điều này dẫn đến bộ nhớ khi chạy B sẽ tổng cả 2 của A và B do bộ dọn rác không hoạt động trên A.