Some tutorials on reinforment inforcement learning in PyBullet using soft actor-critic with a simple custom robot that can move in only one plane: 2D Reacher - Reach a point on the table 2D Pusher - Push an object on the table 2D Reacher from Pixels - Reach the marked point on the table 2D Pusher with Inverse Kinematics - Push an object on the table This can serve as a template to get started with…
Some tutorials on using PyBullet in Google Colab: Intro to inverse kinematics in PyBullet with the Kuka robot Pick and Place using virtual suction gripper on Kuka robot Pick and Place using two fingered jaw gripper on Kuka robot Build your own robot with only one joint How to build a simple custom robot that can move in only one plane
Some tutorials on computer vision using Tensorflow / Keras in Colab: Plain old sliding window object detector Siamese net for one-shot image classification One-shot sliding window object detector using Siamese net Differentiable one-shot object localization using Siamese net Differentiable one-shot object localization of object specified by visual cue using Siamese net Differentiable localization…
Got a web app responding too slowly because of a database query? The query plan is what you'd want to look at. Let's look at the execution plan that Postgres shows you when you use the EXPLAIN statement and see how to interpret that. The Postgres documentation on using EXPLAIN is excellent, but I thought writing a concise version will serve as a note to my future self. To start off, let's run with…
Just like how your smartphone's keyboard can predict the next word you're likely to type based on the last few words you entered, one can predict future frames of a video by looking at the current frame. This is really useful in model based re-inforcement learning where it endows an agent with the ability to predict the future and plan a sequence of actions based on those predictions. It helps to…
The rules of Atari Pong are simple enough. You get a point if you put the ball past your opponent, and your opponent gets a point if the ball goes past you. How do we train a neural network to look at the pixels on the screen and decide whether to go up or down? Unlike supervised learning, no labels are available. So, we turn to reinforcement learning. Policy gradients are one way to update the…
Got an image recognition problem? A pre-trained ResNet is probably a good starting point. Transfer learning, where the weights of a pre-trained network are fine tuned for the task at hand, is widely used because it can drastically reduce both the amount of data to be collected and the total time spent training the network. But ResNet wasn't trained with the intention of being a good starting point…
In the old days of 8086, 16-bit programs accessed physical memory directly. This would be valid code and would work: int main() { int *p = (int *)0x02ad; return *p; } x86 processors still boot into 16-bit real mode where this is fine, but the OS switches the processor into protected mode which enables virtual memory. Once virtual memory is enabled, each process has its own virtual memory that the…
Hosting git repos on your own server is actually quite easy. Login to the server, create a new directory, and initialize a bare repo: mkdir foo.git cd foo.git git init --bare That's it! Now, from the client, clone this repo with: git clone username@example.com:path/to/foo.git Having a dedicated user for git repos on the server makes it easier share access to the repo. Create a new user git with a…
Here are two ways to paginate the results of a SQL query that work across all the popular SQL database systems. Truncate the results Silly though it sounds, this might be a reasonable strategy. Suppose you want to show 15 results per page. Then, show up to 20 pages, and stop there. This works well when it's unlikely that anyone would want to see past the first few pages. Incidentally, Google does…