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.

Thứ Hai, 5 tháng 10, 2020

Sử dụng đa dạng ngữ trong IELTS Writing task 2

 Đừng chỉ sử dụng thì hiện tại, hãy đa dạng cách kể chuyện bằng cách dùng:

+ Thì quá khứ

+ Thì tương lai đơn

+ Thì hiện tại tiếp diễn

+ Thì hiện tại hoàn thành (tiếp diễn)

Hay các cấu trúc như:

S + V unless + S + V

Only by/when + modal verb + S + V

The more ... the less ...

If S + V, S + V

Not only ... but also ...

Regarding/Regardless of  Sth, S + V

Despite Sth, S + V

Although S + V, S + V

Thứ Ba, 14 tháng 7, 2020

Cuộc sống là tìm kiếm cảm xúc

Bản chất, chúng ta luôn tìm kiếm cảm xúc an toàn, vui vẻ trong cuộc sống.

Cảm xúc này có thể đến từ nhiều phía, tình yêu, bạn bè, gia đình hay những thành tựu trong công việc.

Nhìn chung, ta không nên quá đặt nặng kỳ vọng vào thứ nào so với những thứ khác. Ví dụ, đừng nên nghĩ tình yêu là quan trọng, ta phải luôn nhận được cảm xúc tích cực trong tình yêu, đôi khi cảm giác trung dung cũng là thứ chấp nhận được.

Trải qua một vài mối tình, nếm đủ qua cung bậc cảm xúc của tình yêu đến sex, tôi cũng không biết mình có thể mong đợi cảm xúc gì hơn nữa, liệu có cảm xúc gì mà chưa từng trải qua, từ vui vẻ, thăng hoa đến buồn, thậm chí là đau khổ.

Rốt cục, bớt kỳ vọng mà bớt mơ mộng sẽ bớt thất vọng và đau khổ, sẽ tốt cho tim mạch :">