Skip to content

Instantly share code, notes, and snippets.

View vwxyzjn's full-sized avatar
😃

Costa Huang vwxyzjn

😃
View GitHub Profile
import random
import math
import numpy as np
import pandas as pd
from pysc2.agents import base_agent
from pysc2.lib import actions
from pysc2.lib import features
import numpy as np
from tensorforce.agents import PPOAgent
from tensorforce.execution import Runner
from tensorforce.contrib.openai_gym import OpenAIGym
# Create an OpenAIgym environment
# ReversedAddition-v0
# CartPole-v0
env = OpenAIGym('ReversedAddition-v0', visualize=False)
@vwxyzjn
vwxyzjn / matmult.go
Last active April 8, 2022 20:16
👍 *CORRECT* Simple Matrix multiplication and transpostion with Go (https://play.golang.org/p/uVJLR8qAxv3)
package main
import (
"errors"
"fmt"
)
func main() {
X := [][]float32{
[]float32{1.0, 2.0, 3.0},
@vwxyzjn
vwxyzjn / tf.gradient.usage.py
Last active February 7, 2019 03:21
Use tf.gradient and tf.assign to manually update the weights (variables)
# Author: Costa Huang (costa.huang@outlook.com)
# References include
# https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/linear_regression.py
# https://stackoverflow.com/a/42861919/6611317
import tensorflow as tf
import numpy
import matplotlib.pyplot as plt
tf.reset_default_graph()
# Parameters
def derivative(func, x):
h = 1e-10
x_d = np.full_like(x, 0) # the derivatives
x_c = x.copy()
for idx, value in np.ndenumerate(x):
x_c[idx] += h
x_d[idx] = (func(x_c) - func(x)) / h
x_c[idx] -= h
return x_d
<!DOCTYPE html>
<html>
<head>
<title>S3 Bucket Listing Generator</title>
</head>
<body>
<div id="navigation"></div>
<div id="listing"></div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
@vwxyzjn
vwxyzjn / handle_obs_ac_spaces.py
Last active March 19, 2019 05:00
How Openai's baselines handles different types of observation spaces and action spaces
# https://github.com/hill-a/stable-baselines/blob/06f5843a3254ab7c2f6c927792e00365a778009e/stable_baselines/common/input.py#L6
def observation_input(ob_space, batch_size=None, name='Ob', scale=False):
"""
Build observation input with encoding depending on the observation space type
When using Box ob_space, the input will be normalized between [1, 0] on the bounds ob_space.low and ob_space.high.
:param ob_space: (Gym Space) The observation space
:param batch_size: (int) batch size for input
(default is None, so that resulting input placeholder can take tensors with any batch size)
# Reference: http://inoryy.com/post/tensorflow2-deep-reinforcement-learning/
import torch
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
from torch.distributions.categorical import Categorical
# Reference: http://inoryy.com/post/tensorflow2-deep-reinforcement-learning/
import torch
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
from torch.distributions.categorical import Categorical
from tensorboardX import SummaryWriter
import argparse

Install softwares

sudo pacman -S qemu python python-pip
sudo pacman -S qemu virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat
sudo pacman -S ebtables iptables
sudo systemctl enable libvirtd.service
sudo systemctl restart libvirtd.service
sudo virsh net-start default