Skip to content

Instantly share code, notes, and snippets.

View iwiwi's full-sized avatar
🏠
Working from home

Takuya Akiba iwiwi

🏠
Working from home
View GitHub Profile
#!/usr/bin/env python
import itertools
import sys
import os
import subprocess
import jinja2
def enumerate_combinations(**params):
class RangeWithTimeout(object):
def __init__(self, n=None, timeout_seconds=None):
self.n = n
self.timeout_seconds = timeout_seconds
self.i = 0
def __iter__(self):
self.start_datetime = datetime.datetime.now()
from chainer.training import extension
import signal
class LearningRateSignalHandler(extension.Extension):
trigger = 1, 'epoch'
def __init__(self, attr='lr', rate=0.1, signalnum=signal.SIGUSR1, optimizer=None):
self.attr = attr
@iwiwi
iwiwi / alltoall_demo.py
Created August 14, 2017 05:32
All-to-all collective communication for numpy & cupy arrays with ChainerMN (demo)
import chainermn
from chainermn.communicators._memory_utility import array_to_buffer_object
import mpi4py.MPI
comm = chainermn.create_communicator('naive')
def alltoall_demo(xp):
mpi_comm = comm.mpi_comm
@iwiwi
iwiwi / jlog.py
Created June 5, 2016 02:25
Python implementation of JLOG (cpp-json-logger)
# Copyright 2016, Takuya Akiba
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
from typing import *
class Variable(object):
def __init__(self, data):
# type: (float) -> None
self.data = data
self.creator = None # type: Function
import chainer.functions as F
def selu(x, alpha=1.6732632423543772848170429916717, scale=1.0507009873554804934193349852946):
return scale * F.elu(x, alpha=alpha)
"""
(anaconda3-4.2.0) ~/tmp% python numba_example.py [18:00:09]
Python: 3.641503095626831
Numba: 0.09061694145202637
"""
import time
from numba import jit, int32
import numpy as np
import sklearn.datasets
import sklearn.ensemble
import xgboost
N_TRAIN = 60000
NS_ITERATIONS = [2 ** k for k in range(8)]
MODELS = [
('RandomForestClassifier', sklearn.ensemble.RandomForestClassifier, {'n_jobs': -1}),
# 普通の場合
>>> class A:
... def hello(self):
... print('hellooooo')
... def __len__(self):
... print('lennnnnn')
... return 10
... def __call__(self):
... print('calllllled')
...