Skip to content

Instantly share code, notes, and snippets.

@ak110
ak110 / unlock_guard.h
Last active December 20, 2015 00:49
std::lock_guard<std::mutex>の中で一時的にロックを解除したくなった時に作ったクラス。
#pragma once
#include <boost/noncopyable.hpp>
namespace {
/// 一時的にロックを解除するためのクラス
template<class Mutex>
class unlock_guard : private boost::noncopyable {
Mutex& m;
public:
typedef Mutex mutex_type;
/// unlock()
@ak110
ak110 / Log4netLazyMinimalLock.cs
Last active February 21, 2019 09:24
log4netのLockingModel。 <lockingModel type="Diagnostics.Log4netLazyMinimalLock" /> とか。
/*
log4netのLockingModel<lockingModel type="Diagnostics.Log4netLazyMinimalLock" /> とか。
特徴はこんな感じ。
- 別スレッドで遅延書き込み
- ファイルへの排他はMinimalLockと同じように書き込む時のみ
- Mutexによる排他も行うので複数プロセスから同じファイルに書き込めるかも?
- エラー時はリトライ
- 空ファイルを作成しない
- UTF-8のBOMだけの書き込みを行わない
@ak110
ak110 / StaticTest.asm
Created July 22, 2013 10:45
関数ローカルのstatic変数の仕組み。
; Function compile flags: /Ogtpy
; File c:\data\test\statictest.cpp
; COMDAT ?StaticTest@@YAHXZ
_TEXT SEGMENT
?StaticTest@@YAHXZ PROC ; StaticTest, COMDAT
; 6 : static int s = std::rand();
mov eax, DWORD PTR ?$S1@?1??StaticTest@@YAHXZ@4IA
test al, 1
@ak110
ak110 / RandomSamplingAdapter.cpp
Last active August 29, 2015 14:23
ランダムに指定個数を非復元抽出するRange Adapterを作ってみた。
#include <vector>
#include <boost/range.hpp>
using namespace std;
namespace RangeAdapter {
namespace Detail {
template<class Range>
struct RandomSampledRange;
// Range
@ak110
ak110 / ensemble.py
Last active June 12, 2017 14:02
Baggingとその偽物(?)の効果を調べてみた ref: http://qiita.com/ak11/items/55036ac10d08cc4f426f
"""
アンサンブルのお試しコード
"""
import numpy as np
import sklearn.base
import sklearn.ensemble
import sklearn.metrics
import sklearn.model_selection
import sklearn.linear_model
@ak110
ak110 / file0.txt
Last active December 28, 2017 13:47
TensorFlowで強制的にallow_growth = Trueをする ref: https://qiita.com/ak11/items/875c0f520ff1e231ee0c
import importlib.machinery
import sys
class CustomFinder(importlib.machinery.PathFinder):
def find_spec(self, fullname, path=None, target=None):
if fullname == 'tensorflow.python.client.session':
spec = super().find_spec(fullname, path, target)
loader = CustomLoader(fullname, spec.origin)
@ak110
ak110 / plot_iou.py
Created April 29, 2018 07:22
IoUの0.1~0.9を図にしてみた ref: https://qiita.com/ak11/items/8e0f42f358c1f822df27
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
for i, iou in enumerate(np.linspace(1, 0, 11)):
#   ↓t
# □□□
# □□□
# □□■□□