Skip to content

Instantly share code, notes, and snippets.

View danijar's full-sized avatar

Danijar Hafner danijar

View GitHub Profile
algorithms:
- config:
| frame_skip: 6
| history: 6
| replay_capacity: 5e4
name: DQN
train_steps: 200000
type: DQN
envs:
- SimpleGather-v0
import numpy as np
class Network:
def __init__(self, num_inputs, num_hidden, num_output,
init_weight_scale=0.5):
self.w1 = np.random.normal(
0, init_weight_scale, (num_inputs + 1, num_hidden))
self.w2 = np.random.normal(
@danijar
danijar / tf_char_rnn.py
Last active March 21, 2024 16:55
Simple character-level recurrent language model implemented in TensorFlow.
"""Character based language modeling with multi-layer GRUs.
To train the model:
python3 tf_char_rnn.py --mode training \
--logdir path/to/logdir --corpus path/to/corpus.txt
To generate text from seed words:
python3 tf_char_rnn.py --mode sampling \
@danijar
danijar / edit_dirs
Last active April 29, 2018 12:50
Text based tool move and delete directories
#!/usr/bin/python3
"""Move or delete directories via your text editor.
Installation:
- Install sh.py via `pip3 install sh`.
- Save this file into a directory in your $PATH, for example `~/bin`.
"""
import argparse
import tempfile
@danijar
danijar / gru.py
Last active July 25, 2021 18:00
Gated Recurrent Unit with Layer norm and Xavier initializer
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import numpy as np
import tensorflow as tf
class GRU(tf.contrib.rnn.RNNCell):
@danijar
danijar / agents_pybullet_example.md
Last active January 10, 2021 09:01
Example for using TensorFlow Agents with custom environments

TensorFlow Agents PyBullet Usage Example

This example shows how to install TensorFlow agents and use it on custom environments, such as the environments that come with PyBullet.

It works for both Python 3 and Python 2. Just replace pip3 and python3 with pip2 and python2.

Set up the dependencies:

@danijar
danijar / bench_gym_speed.sh
Created September 13, 2017 21:31
One-liner to benchmark speed of Gym environments
python -c "import gym,time;d=10000;e=gym.make('Ant-v1');s=time.time();e.reset();[e.reset() if e.step(e.action_space.sample())[2] else 0 for _ in range(d)];print(d/(time.time()-s),'FPS')"
@danijar
danijar / tensorflow-agents-ppo-minitaur.py
Created October 23, 2017 14:28
Configuration for TensorFlow Agents PPO on MinitaurBulletEnv-v0
def minitaur_config():
# General
algorithm = ppo.PPOAlgorithm
num_agents = 10
eval_episodes = 30
use_gpu = False
# Environment
env = 'MinitaurBulletEnv-v0'
max_length = 1000
steps = 1e7 # 10M
@danijar
danijar / share_variables_decorator.py
Last active November 20, 2021 17:21
TensorFlow decorator to share variables between calls. Works for both functions and methods.
import functools
import tensorflow as tf
class share_variables(object):
def __init__(self, callable_):
self._callable = callable_
self._wrappers = {}
@danijar
danijar / blog_tensorflow_variational_auto_encoder.py
Last active February 22, 2023 09:02
TensorFlow Variational Auto-Encoder
# Full example for my blog post at:
# https://danijar.com/building-variational-auto-encoders-in-tensorflow/
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
tfd = tf.contrib.distributions