メモ。
doi:10.1038/nature.2014.15176
doi:10.1038/nature13334
人間の脳にも磁鉄鉱(Fe3O4)があるそうだ。
Joseph L. Kirschvink et al. "Magnetite biomineralization in the human brain," 1992
(http://www.pnas.org/content/89/16/7683.full.pdf)
2014/07/21
電磁波が渡り鳥の磁気コンパスに影響を与えているかも?
投稿者
bluewidz
0
コメント
2014/01/26
buildbot + mercurial の使い方
次のような設定を行うと、リポジトリ変更時に自動的にビルドされるようになる。
buildbotはver.0.8.6を使用した。
buildbot関連のファイルを置くディレクトリを$workとする。
1. マスター用の設定ファイルを作る
cd $work buildbot create-master master cd master cp master.cfg.sample master.cfg
2. master.cfg を変更する
2.1. CHANGESOURCES を変更する
もともとあったGitPollerを削除し、次の2行を追加する。from buildbot.changes import pb c['change_source'] = pb.PBChangeSource(port=9988, user='changeuser', passwd='password_xxx')ただし、port, user, passwdは適切な値に変更する。
2.2. SCHEDULERS を変更する
SingleBranchScheduler の引数を変更する。c['schedulers'].append(SingleBranchScheduler( name="all", branch="default", builderNames=["runtests"]))ブランチを使っていないなら、branchにはdefaultと指定する。
branch名の指定を誤ると、mercurialからアップデートが 通知されるだけになり、ビルドは実行されなくなる。
2.3. BUILDERS を変更する
git関連を削除して、次の行を追加する。from buildbot.steps.source.mercurial import Mercurial factory.addStep(Mercurial(repourl='/xxx/yyy/bb-test', mode='full', method='fresh', branchType='inrepo')) factory.addStep(ShellCommand(command=["./make.sh"]))repourl はリポジトリのパス。
make.sh はビルドするためのスクリプト。
Makefileを使用しているなら、単にmakeでもよい。
2.4. リポジトリの設定をする
.hg/hgrc に次の内容を追加する。[hooks] changegroup.buildbot = python:buildbot.changes.hgbuildbot.hook [hgbuildbot] master = localhost:9988 auth = changeuser:password_xxx
3. slave を作る
cd $work buildslave create-slave slave master example-slave pass
4. 動作させる
cd $work buildbot start master buildslave start slaveこれで、リポジトリに変更をpushするだけで、変更が反映されたソースコードで 自動的にビルドされるようになる。
投稿者
bluewidz
0
コメント
2013/11/16
bash で二重に trap
Q. 最初のスクリプトでtrapを呼び、そこから呼び出したスクリプト内でもtrapを呼ぶとどうなるのか?
A. 両方が呼び出される。以下、実験結果。
[test.sh]
#!/bin/bash
trap "echo xxx" 2
./sub.sh
sleep 5
[sub.sh]
#!/bin/bash
trap "echo yyy" 2
sleep 5
test.shを実行して、5秒以内にCtrl+Cを押すと、端末に
^Cyyy
xxx
が表示される。
5秒から10秒の間にCtrl+Cを押すと、端末に
^Cxxx
が表示される。
ここにtrapの解説がある。
http://shellscript.sunone.me/signal_and_trap.html
投稿者
bluewidz
0
コメント
2013/10/19
perl で連想配列に配列を記録する方法
いつも忘れるのでメモ。
%x2y = (); # 読み込み while(<>) { $_ =~ s/[\r\n]//g; # 改行除去 @c = split / /; # スペースで分割 push(@{$x2y{$c[0]}}, $c[1]); # キーが$c[0]の配列に$c[1]を追加 } # 表示 while(($k,$v)=each(%x2y)) { print $k." --> ".join(", ",@$v)."\n"; }
このスクリプトに標準入力から
a a
b b
b c
c d
c e
c f
を入力すると、
c --> d, e, f
a --> a
b --> b, c
が得られる。
投稿者
bluewidz
0
コメント
Brzozowski さんの読み方
http://d.hatena.ne.jp/m-hiyama/20131017/1381998987
によると、「ゾゾウスキイ」とのこと。
しかしよくよく音声を
http://ja.forvo.com/word/brzozowski/
で聞いてみると最初のzが発音されず、
ブロゾウスキー
プロゾウスキー
ブロゾフスキー
プロゾフスキー
のどれかに近いように聞こえる。
「ゾ」にアクセントをおいて発音すると
forvoにある音声と似たような発音ができそうだ。
投稿者
bluewidz
0
コメント
2013/05/30
読めない苗字
こんな苗字を見つけた。
Ljolje
ここにたくさんある。
http://www.linkedin.com/pub/dir/+/Ljolje
どうやらクロアチア語圏かそのあたりの苗字のようだ。
http://croatia.kororo.jp/lang/01accent.html
によると、Ljは「リュ」の音が近いようなので、
仮にクロアチア語だとしてカタカナ読みをすると、
「リョーリュェ」とか「リョーレ」
と読めばいいのだろうか。
投稿者
bluewidz
0
コメント
2013/04/21
RVOと右辺値参照
C++11のお話。
RVO(Return Value Optimization)と右辺値参照が競合する場合は、
RVOが優先される。
#include <iostream> class test { public: test(void) : val(0) { std::cout << "ctor with no args" << std::endl; } ~test(void) { std::cout << "dtor : " << val << std::endl; } test(int a) : val(a) { std::cout << "ctor : " << a << std::endl; } test(const test &) = delete; // undef copy constructor test(test &&a) : val(a.val) { std::cout << "move ctor : " << val << std::endl; a.val = -val; } const test& operator=(test &&a) { std::cout << "move oper= " << a.val << std::endl; val = a.val; a.val = -val; return *this; } private: int val; }; test ret_test(int a) { test t(a); return t; } int main(void) { { test t1 = ret_test(1); // RVO t1 = ret_test(2); // rvalue reference } std::cout << "---" << std::endl; { test t3 = std::move(ret_test(3)); // rvalue reference by std::move } return 0; }
処理した結果は次のようになる。g++ ver.4.7.2 と Debian clang version 3.0-6.2
のどちらでも同じ結果となった。
ctor : 1
ctor : 2
move oper= 2
dtor : -2
dtor : 2
---
ctor : 3
move ctor : 3
dtor : -3
dtor : 3
投稿者
bluewidz
0
コメント
2013/03/25
LibreOffice で条件付き書式
条件付き書式で数値ではなく文字列を指定するには、
[セルの値が] [次の値に等しい] "ABC"
のようにすればよい。この例の場合、セルの値がABCの場合に
条件を満たす。指定したい文字列を " で括る必要がある。
' で括っても動作しないし、単に文字列を書いただけでも動作しない。
投稿者
bluewidz
1
コメント
2013/02/08
[Python] numpy の行列
numpy の行列の各要素へのアクセス方法をいろいろと試した。
まず、numpyを読み込んで、npという名前でアクセスできるようにする。
>>> import numpy as npさらに、行列Mを作成する。
>>> M=np.matrix([[1,2,3],[4,5,6],[7,8,9]])1行目1列目が1、1行目2列目が2である。
2行目を表示する。
>>> print M[1] [[4 5 6]]
2行目3列目の値を表示する。
>>> print M[1,2] 6
以降、i行列j列目を(i,j)と書くこととする。
(3,2)と(1,2)の成分を取り出す。
>>> print M[[2,0],[1,1]] [[8 2]](3,1)と(2,2)の成分を取り出すわけではないことに注意。
(1,3)と(2,2)、(3,1)の成分を取り出す。
>>> print M[[0,1,2],[2,1,0]] [[3 5 7]]
(2,3)と(2,2)、(2,1)の成分を取り出す。
>>> print M[[1,1,1],[2,1,0]] [[6 5 4]]省略して書くこともできる。
>>> print M[1,[2,1,0]] [[6 5 4]]これも同様。
>>> print M[[1],[2,1,0]] [[6 5 4]]
次の書き方はエラーとなる。
>>> print M[[1,2],[2,1,0]] Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/pymodules/python2.7/numpy/matrixlib/defmatrix.py", line 305, in __getitem__ out = N.ndarray.__getitem__(self, index) ValueError: shape mismatch: objects cannot be broadcast to a single shape
(3,2)と(2,2)、(1,2)の成分を取り出す。
>>> print M[[2,1,0],[1,1,1]] [[8 5 2]]
同様に省略できるが、形式が変わる。
>>> print M[[2,1,0],1] [[8] [5] [2]]
次の3つはすべて同じ結果となる。
>>> print M[[2],1] [[8]] >>> print M[[2],[1]] [[8]] >>> print M[2,[1]] [[8]]
しかし、[]が[]内にないと、スカラーの値が表示される。
>>> print M[2,1] 8
次の2つは同じ。
>>> print M[np.arange(3),np.arange(3)] [[1 5 9]] >>> print M[[0,1,2],[0,1,2]] [[1 5 9]]
1行目と2行目を取り出す。
>>> print M[[0,1]] [[1 2 3] [4 5 6]]
転置をとる。
>>> print M.T [[1 4 7] [2 5 8] [3 6 9]]
投稿者
bluewidz
0
コメント
2013/02/01
mnist.pkl.gz の読み込み方
http://deeplearning.net/tutorial/gettingstarted.html
に記載されている MNIST Dataset
http://deeplearning.net/data/mnist/mnist.pkl.gz
のデータ構造は次のようになっている。
[mnist.pkl] = [[train_set], [valid_set], [test_set]]
[*_set] = [[*_setの入力], [*_setの正解]]
[*_setの入力] = [[784個の浮動小数点の配列], ... ]
[*_setの正解] = [[0〜9の整数], ... ]
ここで、[784個の浮動小数点の配列]は28x28の手書き数字画像、
*_setはtrain_set、valid_set、test_setのいずれかである。
読み込んで端末に表示してみるコード(load.py)は次の通り。
import cPickle, gzip, numpy, sys if len(sys.argv) != 2: quit() data_index=int(sys.argv[1]) f=gzip.open('../data/mnist.pkl.gz','rb') train_set, valid_set, test_set=cPickle.load(f) train_set_x, train_set_y=train_set # setの中身が for i in range(data_index,data_index+1): for y in range(0,28): for x in range(0,28): if train_set_x[i][y*28+x]<0.5: sys.stdout.write(" ") elif train_set_x[i][y*28+x]<0.8: sys.stdout.write("+") else: sys.stdout.write("*") sys.stdout.write("\n") print "correct =",train_set_y[i] print "--------------------------------"
8番目のデータを表示する実行例は次の通り。
$ python load.py 7 ******+ +**********+ +************ ***+++++**** ***+ ***+ +*** *****+ +++***** *********+ ********** +** ** ** *** +* **** ***++++++***+ ***********+ +*******+ **+ correct = 3 --------------------------------データを読めていることが確認できる。
投稿者
bluewidz
0
コメント
2013/01/30
[Python] theano.tensor.grad
theano.tensor で書いた関数を自動的に微分することができる。
ただし、関数で計算した結果得られる値はスカラーでなければならない。
ベクトルや行列になっているとエラーとなる。
gradを使った例を次に示す。
import numpy import theano import theano.tensor as T x=T.dscalar('x') v=T.dvector('v') M=T.dmatrix('M') y1=x**3 y2=T.dot(v,v)*x y3=T.sum(T.dot(M,M)) gy1=T.grad(y1,x) gy2=T.grad(y2,v) gy3=T.grad(y3,M) f1=theano.function([x],gy1) f2=theano.function([x,v],gy2) f3=theano.function([M],gy3) print "f1 :",theano.pp(f1.maker.fgraph.outputs[0]) print "f2 :",theano.pp(f2.maker.fgraph.outputs[0]) print "f3 :",theano.pp(f3.maker.fgraph.outputs[0]) print "f1(2) =",f1(2) print "f2(2,[3,5]) =",f2(2,[3,5]) print "f3([[1,2],[3,4]]) =",f3([[1,2],[3,4]])
実行すると、
f1 : Elemwise{Composite{[mul(i0, sqr(i1))]}}(TensorConstant{3.0}, x) f2 : Elemwise{Composite{[add(*1 -> mul(i0, i1), *1)]}}(x, v) f3 : gemm_inplace(_dot22(alloc(TensorConstant{(1, 1) of 1.0}, Shape_i{0}(M), Shape_i{1}(M)), M.T), TensorConstant{1.0}, M.T, alloc(TensorConstant{(1, 1) of 1.0}, Shape_i{0}(M), Shape_i{1}(M)), TensorConstant{1.0}) f1(2) = 12.0 f2(2,[3,5]) = [ 12. 20.] f3([[1,2],[3,4]]) = [[ 7. 11.] [ 9. 13.]]が得られる。f1 の出力を見ると、mul が掛け算で sqr が2乗、i0=TensorConstant{3.0}、
i1=x であるから、y1 を x で微分した結果である 3*x^2 が得られていることがわかる。
f2 と f3 は複雑すぎて読み方がわからないが、具体的な値を入れた結果は
正しく出力されている。
エラーが出る例として、ベクトルが戻り値になるような関数を試してみる。
import numpy import theano import theano.tensor as T x=T.dscalar('x') v=T.dvector('v') y=v*x gy=T.grad(y,x)すると、
Traceback (most recent call last): File "test.py", line 8, in <module> gy=T.grad(y,x) File "/usr/local/lib/python2.7/dist-packages/theano/gradient.py", line 411, in grad raise TypeError("cost must be a scalar.") TypeError: cost must be a scalar.といわれて微分できない。
投稿者
bluewidz
0
コメント
2013/01/24
[Python] theano.tensor.fill
fill の挙動がわからないので調べてみた。
import numpy import theano import theano.tensor as T x=T.dscalar('x') xc=T.dscalar('xc') y1=3*x y2=xc*x y3=T.fill(xc,3)*x f1=theano.function([x],y1) f2=theano.function([x,xc],y2) f3=theano.function([x,xc],y3) print "x=",theano.pp(x) print "y1=",theano.pp(y1) print "y2=",theano.pp(y2) print "y3=",theano.pp(y3) print "f1=",theano.pp(f1.maker.fgraph.outputs[0]) print "f2=",theano.pp(f2.maker.fgraph.outputs[0]) print "f3=",theano.pp(f3.maker.fgraph.outputs[0]) print "f1(2)=",f1(2) print "f2(2,3)=",f2(2,3) print "f3(2,3)=",f3(2,3) print "f3(2,100)=",f3(2,100)
実行すると、
x= x y1= (TensorConstant{3} * x) y2= (xc * x) y3= (fill(xc, TensorConstant{3}) * x) f1= (TensorConstant{3.0} * x) f2= (xc * x) f3= (TensorConstant{3.0} * x) f1(2)= 6.0 f2(2,3)= 6.0 f3(2,3)= 6.0 f3(2,100)= 6.0が得られた。
f3(2,3)もf3(2,100)も同じ値を返していることから、
fill は第1引数を第2引数の値に固定した結果を返しているように見える。
何に使うのだろうか。
ところで、
f3=theano.function([x,xc],y3)を
f3=theano.function([x],y3)に置き換えると
theano.gof.fg.MissingInputError: ('An input of the graph, used to compute Elemwise{second,no_inplace}(xc, TensorConstant{3}), was not provided and not given a value', xc)というエラーが出力される。
値が与えられてない変数が残っていると、たとえfillを使って値を与えていても
関数化するのは無理なようだ。
投稿者
bluewidz
0
コメント
2013/01/20
流行のDNN
なんか、DNNが流行っているらしい。
というわけで、探してみると日本語の概要があった。
http://www.slideshare.net/mokemokechicken/pythondeep-learning
http://www.slideshare.net/tushuhei/121227deep-learning-iitsuka
Python+Theanoを使うと簡単なそうな。
実装例が
http://deeplearning.net/tutorial/
にあるので、まずは準備で、
http://deeplearning.net/tutorial/gettingstarted.html
に書いてあるとおり、githubからcloneでソースを取得する。
チュートリアルどおり、実験用の手書き数字画像としてMNIST datasetをダウンロードする。
gitで取ってきたなかの、
data/download.sh
を実行するとデータがダウンロードされる。
また、
$ cd doc $ makeを実行すると チュートリアルのpdf版が html/deeplearning.pdf に作成される。
使い方はまだよく調べていないが、次のように実行すると、
とりあえずテスト実行できるようだ。
$ python >>> import test >>> test.speed()
実行した結果は、以下。一部省略。
-- logistic_sgd のログの一部(float64) -- epoch 30, minibatch 83/83, validation error 8.031250 % epoch 30, minibatch 83/83, test error of best model 7.843750 % Optimization complete with best validation score of 8.031250 %,with test performance 7.843750 % The code run for 30 epochs, with 1.299264 epochs/sec The code for file logistic_sgd.pyc ran for 23.1s -- logistic_cg のログの一部(float64) -- validation error 7.927083 % Optimization complete with best validation score of 7.927083 %, with test performance 8.041667 % The code for file logistic_cg.pyc ran for 53.4s -- mlp のログの一部(float64) -- epoch 5, minibatch 2500/2500, validation error 7.300000 % epoch 5, minibatch 2500/2500, test error of best model 7.590000 % Optimization complete. Best validation score of 7.300000 % obtained at iteration 14999, with test performance 7.590000 % The code for file mlp.pyc ran for 2.88m -- convolutional_mlp のログの一部(float64) -- epoch 5, minibatch 100/100, validation error 6.430000 % epoch 5, minibatch 100/100, test error of best model 6.920000 % Optimization complete. Best validation score of 6.430000 % obtained at iteration 599,with test performance 6.920000 % The code for file convolutional_mlp.pyc ran for 2.26m -- dA のログ(float64) -- ... loading data Training epoch 0, cost 63.2891694201 Training epoch 1, cost 55.7866565443 The no corruption code for file dA.pyc ran for 2.05m Training epoch 0, cost 81.7714190632 Training epoch 1, cost 73.4285756365 The 30% corruption code for file dA.pyc ran for 2.06m -- SdA のログ(float64) -- ... loading data ... building the model ... getting the pretraining functions ... pre-training the model Pre-training layer 0, epoch 0, cost 194.503144937 Pre-training layer 1, epoch 0, cost 695.507788509 Pre-training layer 2, epoch 0, cost 529.03645135 The pretraining code for file SdA.pyc ran for 6.89m ... getting the finetuning functions ... finetunning the model epoch 0, minibatch 166/166, validation error 14.868687 % epoch 0, minibatch 166/166, test error of best model 15.727273 % epoch 1, minibatch 166/166, validation error 11.595960 % epoch 1, minibatch 166/166, test error of best model 11.717172 % Optimization complete with best validation score of 11.595960 %,with test performance 11.717172 % The training code for file SdA.pyc ran for 6.70m -- DBN のログ(float64) -- ... loading data ... building the model ... getting the pretraining functions ... pre-training the model Pre-training layer 0, epoch 0, cost -165.566548661 Pre-training layer 1, epoch 0, cost -620.030667461 Pre-training layer 2, epoch 0, cost -133.876169806 The pretraining code for file DBN.pyc ran for 7.84m ... getting the finetuning functions ... finetunning the model epoch 1, minibatch 166/166, validation error 28.373737 % epoch 1, minibatch 166/166, test error of best model 29.848485 % epoch 2, minibatch 166/166, validation error 20.272727 % epoch 2, minibatch 166/166, test error of best model 21.424242 % Optimization complete with best validation score of 20.272727 %,with test performance 21.424242 % The fine tuning code for file DBN.pyc ran for -64.90m -- rbm のログ(float64) -- ... loading data WARNING (theano.tensor.opt): Your current code is fine, but Theano versions prior to 0.5rc2 might have given an incorrect result. To disable this warning, set the Theano flag warn.subtensor_merge_bug to False. Training epoch 0, cost is -53.1045703345 Training took 17.727500 minutes WARNING (theano.tensor.opt): Your current code is fine, but Theano versions prior to 0.5rc2 might have given an incorrect result. To disable this warning, set the Theano flag warn.subtensor_merge_bug to False. ... plotting sample 0 ['logistic_sgd', 'logistic_cg', 'mlp', 'convolutional_mlp', 'dA', 'SdA', 'DBN', 'rbm'] float64 times [ 24.00578618 55.60583591 175.75342607 136.53151321 248.71974111 823.29348183 874.02775431 1079.12984514] float64 expected [10.300000000000001, 23.699999999999999, 78.099999999999994, 73.700000000000003, 116.40000000000001, 346.89999999999998, 381.89999999999998, 558.10000000000002] float64 % expected/get [ 0.42906322 0.42621426 0.44437256 0.53980212 0.46799663 0.42135643 0.43694265 0.51717595] -- float32の場合の最後の方のログ -- ... plotting sample 0 ['logistic_sgd', 'logistic_cg', 'mlp', 'convolutional_mlp', 'dA', 'SdA', 'DBN', 'rbm'] float32 times [ 21.94568563 49.98527789 177.91128731 136.48723054 291.68081236 1048.11308694 1128.05673623 1302.78659558] float32 expected [11.6, 29.600000000000001, 47.200000000000003, 66.5, 71.0, 191.19999999999999, 226.80000000000001, 432.80000000000001] float32 % expected/get [ 0.5285777 0.59217436 0.26530076 0.48722507 0.24341677 0.18242306 0.20105372 0.33221097] float64/float32 [ 1.09387269 1.11244427 0.98787114 1.00032445 0.85271204 0.78550062 0.77480833 0.82832434] Duplicate the timing to have everything in one place ['logistic_sgd', 'logistic_cg', 'mlp', 'convolutional_mlp', 'dA', 'SdA', 'DBN', 'rbm'] float64 times [ 24.00578618 55.60583591 175.75342607 136.53151321 248.71974111 823.29348183 874.02775431 1079.12984514] float64 expected [10.300000000000001, 23.699999999999999, 78.099999999999994, 73.700000000000003, 116.40000000000001, 346.89999999999998, 381.89999999999998, 558.10000000000002] float64 % expected/get [ 0.42906322 0.42621426 0.44437256 0.53980212 0.46799663 0.42135643 0.43694265 0.51717595] float32 times [ 21.94568563 49.98527789 177.91128731 136.48723054 291.68081236 1048.11308694 1128.05673623 1302.78659558] float32 expected [11.6, 29.600000000000001, 47.200000000000003, 66.5, 71.0, 191.19999999999999, 226.80000000000001, 432.80000000000001] float32 % expected/get [ 0.5285777 0.59217436 0.26530076 0.48722507 0.24341677 0.18242306 0.20105372 0.33221097] float64/float32 [ 1.09387269 1.11244427 0.98787114 1.00032445 0.85271204 0.78550062 0.77480833 0.82832434] expected float64/float32 [ 0.46934054 0.47413961 0.43898283 0.53997725 0.39906636 0.33097574 0.3385468 0.42838942] ERROR (theano.sandbox.cuda): nvcc compiler not found on $PATH. Check your nvcc installation and try again. ... plotting sample 0 ['logistic_sgd', 'logistic_cg', 'mlp', 'convolutional_mlp', 'dA', 'SdA', 'DBN', 'rbm'] gpu times [ 23.64237881 50.57395744 185.60482621 139.12935448 289.82814217 1050.09374905 1123.013515 1268.43072391] gpu expected [3.0766348799999998, 7.5552349100000002, 18.992267850000001, 9.5999999999999996, 24.130070450000002, 20.399999999999999, 56.0, 302.60000000000002] gpu % expected/get [ 0.1301322 0.14938983 0.10232637 0.06900054 0.08325648 0.01942684 0.04986583 0.2385625 ] float64/gpu [ 1.01537102 1.09949545 0.94692272 0.98132787 0.85816284 0.78401903 0.77828783 0.85075978] Duplicate the timing to have everything in one place ['logistic_sgd', 'logistic_cg', 'mlp', 'convolutional_mlp', 'dA', 'SdA', 'DBN', 'rbm'] float64 times [ 24.00578618 55.60583591 175.75342607 136.53151321 248.71974111 823.29348183 874.02775431 1079.12984514] float64 expected [10.300000000000001, 23.699999999999999, 78.099999999999994, 73.700000000000003, 116.40000000000001, 346.89999999999998, 381.89999999999998, 558.10000000000002] float64 % expected/get [ 0.42906322 0.42621426 0.44437256 0.53980212 0.46799663 0.42135643 0.43694265 0.51717595] float32 times [ 21.94568563 49.98527789 177.91128731 136.48723054 291.68081236 1048.11308694 1128.05673623 1302.78659558] float32 expected [11.6, 29.600000000000001, 47.200000000000003, 66.5, 71.0, 191.19999999999999, 226.80000000000001, 432.80000000000001] float32 % expected/get [ 0.5285777 0.59217436 0.26530076 0.48722507 0.24341677 0.18242306 0.20105372 0.33221097] gpu times [ 23.64237881 50.57395744 185.60482621 139.12935448 289.82814217 1050.09374905 1123.013515 1268.43072391] gpu expected [3.0766348799999998, 7.5552349100000002, 18.992267850000001, 9.5999999999999996, 24.130070450000002, 20.399999999999999, 56.0, 302.60000000000002] gpu % expected/get [ 0.1301322 0.14938983 0.10232637 0.06900054 0.08325648 0.01942684 0.04986583 0.2385625 ] float64/float32 [ 1.09387269 1.11244427 0.98787114 1.00032445 0.85271204 0.78550062 0.77480833 0.82832434] expected float64/float32 [ 0.46934054 0.47413961 0.43898283 0.53997725 0.39906636 0.33097574 0.3385468 0.42838942] float64/gpu [ 1.01537102 1.09949545 0.94692272 0.98132787 0.85816284 0.78401903 0.77828783 0.85075978] expected float64/gpu [ 0.43565836 0.46862063 0.42078647 0.52972286 0.40161731 0.33035146 0.34006715 0.4399925 ] float32/gpu [ 0.92823509 0.98836003 0.95854882 0.98100959 1.00639231 0.99811382 1.00449079 1.02708534] expected float32/gpu [ 0.49064437 0.58528147 0.25430373 0.47797246 0.24497276 0.18207898 0.20195661 0.34120902] speed_failure_float64=8 speed_failure_float32=8 speed_failure_gpu=8
仮想マシン上のlinuxなので、CUDAが使えない…
投稿者
bluewidz
0
コメント
2012/10/14
男性2人の脳地図
成人の男性2人の脳の解剖と解析をしたとのこと。
doi:10.1038/nature11405
http://www.nature.com/nature/journal/v489/n7416/abs/nature11405_ja.html
データは
http://www.brain-map.org
で公開されている。
投稿者
bluewidz
0
コメント
2012/10/13
Linuxのターミナルが文字化けしたら
元に戻す方法が
http://wiliki.zukeran.org/index.cgi?Linux%a4%ce%a5%bf%a1%bc%a5%df%a5%ca%a5%eb%a4%ac%ca%b8%bb%fa%b2%bd%a4%b1%a4%b7%a4%bf%a4%c8%a4%ad%a4%ce%c2%d0%bd%e8
に載っている。これによると、
[Screenを使っているとき]
screenのコマンドキー(デフォルトならCtrl+a)を押してから
:encoding utf8
とか
:encoding euc
などと入力。
[Screenを使っていないとき]
echo "^V^O"
を入力すればよい。
ついでに、
[端末の画面が固まってしまったら]
おそらくCtrl+sを誤って押してしまっているので、
Ctrl+qで解除できる。
投稿者
bluewidz
0
コメント
2012/06/19
脳のカラムの作られ方
解説記事
Nature 486, 41-42 doi:10.1038/486041a
LETTER
(1)Nature 486, 113-117 doi:10.1038/nature10958
(2)Nature 486, 118-121 doi:10.1038/nature11110
脳のカラムの作られ方は、解説記事の図1そのままではあるが、
1. 胚発生時、分裂したニューロンが皮質の表面に向かって並んでいく。
こうして並んだニューロンが兄弟ニューロン。
2. 出生後の発達時、兄弟ニューロンはギャップ結合と呼ばれる穴でつながり
(樹状突起同士でつながる)、互いに電流が流れるようになる
3. その後、ギャップ結合は消失し、兄弟ニューロン間でシナプスが形成される。
4. 最終的に、兄弟ニューロンが類似の応答をするようになる。
ということである。
ギャップ結合をなくすことで3.が起きないことは(1)が示し、
4.が起きないことは(2)が示した。
ギャップ結合の阻害はレトロウィルスを使った変異を利用するか、
ギャップ結合遮断薬を用いることで実現している。
2.は阻害せず、3.を阻害すると4.はなくなるのだろうか?
気になる。
なお、上記の話は全てマウスに関するものである。
投稿者
bluewidz
0
コメント
2012/06/02
工業から情報産業へ
「情報の文明学」(ISBN4-12-203398-5) pp.244-245 に
こんなことが書いてあった。
<引用>
工業社会はまだ、情報産業を競争相手とはみていない。
生産の原理が、工業から情報産業にうつりつつあることを
認識したときに、工業はどういう態度をとるであろうか。
そこで「工業こそは国の礎」という反動イデオロギーが
発生する可能性がある。それはおそらく、農本主義に
ならって工本主義と名づけられるであろう。
</引用>
これが書かれたのは1988年3月である。
最近、いろいろなところで「ものづくり」や
「ものづくり大国日本」などという言葉をよく見聞きする。
たとえば、関東経済産業局のページ
http://www.kanto.meti.go.jp/seisaku/seizousangyou/monodukuri/index_mono.html
には冒頭に
<引用>
「ものづくり」は我が国の国際競争力の源泉であり、
</引用>
と書かれている。こういったものは先の引用文にあった
反動イデオロギーのように思えてならない。
「ものづくり」の連呼はいつ終わるのだろうか。
投稿者
bluewidz
0
コメント
2012/04/15
2011/12/25
天の川銀河の棒状構造の進化
http://www.nature.com/nature/journal/v477/n7364/full/477286a.html
http://www.nature.com/nature/journal/v477/n7364/full/nature10417.html
Chris W. Purcell et al., Nature 477, pp301-303,
The Sagittarius impact as an architect of spirality and outer rings in the Milky Way
いま現在、銀河中心に対してちょうど地球と反対側に位置している
Sagittarius Dwarf Elliptical Galaxy (Sgr)が銀河の円盤の進化に
影響を与えていることが数値計算によりわかったとのこと。
例えば、Sgrの質量が小さめの場合と大き目の場合で銀河中心に
ある棒状構造が強くなったり弱くなったりするという結果がでている。
数値計算には ChaNGa
http://www-hpcc.astro.washington.edu/tools/changa.html
を使っている。CUDAもサポートしていて、並列実行もできるそうな。
実験で使った粒子数は3000万とのこと。
さらに並列実行には
http://charm.cs.uiuc.edu/
を使っているそうな。
投稿者
bluewidz
0
コメント
頭皮に電流を流すと…
記憶や言語機能を上げたり下げたり、痛みを軽減したり
笑い出したり沈黙させたりできるらしい。
たった9Vの電池で。
どこに電極をあててどの向きに流すかで
効果が変わるらしい。
副作用があることもあり、電流を流すのをやめても
効果がすぐに切れるというわけではないようなので、
やらないほうが身のためですね。
Nature 472, 156-159 (2011-04-14); doi:10.1038/472156a
Nature digest Jul 2011, Vol. 8 No. 7, pp24-27
投稿者
bluewidz
0
コメント