<   2015年 07月 ( 2 )   > この月の画像一覧

注意:この状況は日々変化するようなので、
この記事の日付や、カーネルバージョン、
VMwareTools のビルドバージョンに注意してください。

host: Windows7 64bit
   VMwarePlayer6
guest: Ubuntu Server 14.04.2 64bit (GNU/Linux 3.16.0-30)

注)作ったVMをwin7 32bitの人にあげるため、
 あえて古いバージョンのVMwareを使っています

共有フォルダを行うためには、
VMwareTools をインストールする必要があり、
そのために gcc などが必要なので、
ゲスト OS インストール直後に以下を実施。
$ sudo apt-get install builed-essential

その後、VMwareTools をインストールする。
以下のページが一番細かくてよかった(ゲストOS違うけど大丈夫)。
CentOS6.2にVMware Toolsをインストールする | mawatari.jp
http://mawatari.jp/archives/centos-6-2-vmware-tools-install-log


普通であれば、これで終了、のはずなのだけど。

状況


そうだ、ゲストOS の Ubuntu Server のバージョンが 12 で古いから、
バージョンアップしてみよう!と思ったのがはじまり。
カーネルも全部バージョンアップしてみたら、
ゲスト OS が起動しなくなった。

その後、新規に VM を作ってみたが、
どれもゲストとの共有フォルダで失敗する。

・VMwarePlayer7 + Ubuntu Server14
・VMwarePlayer7 + Ubuntu Server12
・VMwarePlayer5 + Ubuntu Server12 ←数年前に成功した組み合わせなのに!
・VMwarePlayer6 + Ubuntu Server14

/mnt/hgfs 以下に何もない。

/etc/mtab, /etc/fstab に .host:/ に相当する記述がないので、
以下を実行するが、マウントされない。
$ sudo mount -t vmhgfs .host:/ /mnt/hgfs

/mnt/hgfs 以下も何も表示されない。
mtab や fstab に追記してみたが、変化なし。

VMwareTools がダメなら oss だぜ!と思ったけどやっぱりダメだった。
$ sudo apt-get install open-vm-tools


よく見ると、VMwareTools のインストール中に、エラーが出ていた。
エラーの詳細は以下のページとまったく同じ。
Linux 3.x の仮想マシンから VMware Fusion の共有フォルダが見えない - いままでのこと
HGFS fails to compile on kernel 3.16.2 ・ Issue #11 ・ rasa/vmware-tools-patches ・ GitHub
検索でお越しになる方のためにエラーメッセージの一部を書いておく。
vmhgfs-only/fsutil.h expected 'gid_t' but argument is of type 'kgid_t'
vmhgfs-only/file.c
incompatible type for argument 4 of 'HgfsSetUidGid'
HgfsAioRead
implicit declaration of function ' generic_file_aio_read'
HgfsAioWrite
implicit declaration of function ' generic_file_aio_write'

解決


VMwareTools のインストールに失敗していた。

VMwareTools のインストール中に、
エラーが出ていないことをちゃんと確認すること。
画面が流れてしまうし、
YES とか NO とか入力しなくてはいけないのでログをファイルに落とせないが、
エラー全部は見えなくても、
何か失敗していることはわかる。

VMwareTools を解凍して、vmhgfs-only のディレクトリで、
エラーが出なくなるまで、ソースの修正と make を繰り返す。
エラーが出なくなったら、それをインストールして解決。
make の仕方などは、以下のページを参照。
システムエンジニア☆あきき VMWareでhostとのファイル共有ができなくなって…対処
http://akiki2starlet.blog.fc2.com/blog-entry-7.html

make の前は必ず make clean を実施。

ソースの修正は、以下のページから、
自分のカーネルバージョンに合うものを探す。
パッチになっているが、大した量ではないので、
vi で手で直すのも可能。
vmware-tools-patches/patches/vmhgfs at master ・ rasa/vmware-tools-patches ・ GitHub
元のソースは必ずバックアップしておく。

確認


/mnt/hgfs 以下にマウントされるだけではダメで、
ファイルの送受信をしてみる。
それでエラーが出て何度かソース修正をやり直した。

以下のページに従って、VMwareTools の動作確認を行う。
VMwareToolsの動作確認・起動はどのようにすれば良いですか。 | ニフティクラウド
http://cloud.nifty.com/cs/catalog/cloud_faq/catalog_120416000931_1.htm


そのた情報


VMwareTools のバージョン確認方法
$ /usr/bin/vmware-toolbox-cmd -v


VMwareTools サービスの再起動方法
$ sudo service vmware-tools restart


VMwarePlayer のメニューからダウンロードした VMwareTools の
iso イメージは、ホストの以下のディレクトリにある。
以下は linux ゲスト向けのファイル。
C:\Program Files (x86)\VMware\VMware Player\linux.iso


VMwareTools は以下からダウンロードできる。
CDS Repository - /var/www/public/stage/session-43/cds/vmw-desktop/player
exe がダウンロードできるので、以下のページを見ながら解凍も可能。
解凍をくりかえすと、中から linux.iso が出てくる。
VMware Tools (9.2.2) をダウンロードする。 - 量産メモ
http://d.hatena.ne.jp/RMS-099/touch/20121109/1352452591

VMwarePlayer のメニューから VMwareTools のインストールに失敗した場合は、
この iso イメージを cdrom としてマウントしたら
インストールできるんじゃないだろうか。
これまではメニューからのインストールによく失敗していて、
面倒で放置していたのだが、今度失敗したらやってみよう。

VMwareTools は日々修正され、ビルドされているぽい。
前日ダウンロードしたものと、今日のビルドバージョンが違うということがあった。
また、ダンナも同じバージョンで新規インストールして試してくれたが、
ホストもゲストもまったく同じなのに、エラーは出ず、問題なく動いたらしい。
日によって挙動が違うのだろうか(謎
[PR]
by xiaoxia | 2015-07-30 18:45 | ソフトウェア | Comments(0)
注:7/7 release v1.1.0 では以下の現象は出ませんでした。

chainer に付属の example である mnist が
私の win7 環境では動きませんでした。
ネットに情報が見当たらなかったのですが、
きっとみんな python マスターだから困ってないのでしょうね…。
そこで修正してむりくり動かしたので、
記事にしてみますよ。

chainer のバージョンは 1.0.1 です。
モリモリ開発が進んでいて
日々バージョンアップされそうな勢いなので、
ご注意ください。

mnist を使う例は以下から落とします。
chainer/examples/mnist at master ・ pfnet/chainer ・ GitHub
https://github.com/pfnet/chainer/tree/master/examples/mnist

ちなみに、chainer のインストール自体は、
このページ
Windowsにすごいインストールしにくい、ではありません。

とあったので、どんだけ大変なのかと思っていましたが、
個人的には、それほどではなかったです。
caffe に比べたら100万倍楽かも。
h2o を使うために、Anaconda を導入済みだったからだと思います。
Anaconda まじおすすめ。
NumPy とか SciPy とか pip とか pandas とか、大概入っています。
h2o については、また別途書くかも。書かないかも。

話を元に戻すと、
使用するデータファイルである mnist.pkl は、以下からダウンロードして、
解凍せずに、gz のままで同じディレクトリに置きます。
http://deeplearning.net/data/mnist/mnist.pkl.gz

最初、mnist.pkl を解凍して、
mnist を動かしてみたら、
python のエラーが出ました。
どこが悪いのか、train_mnist.py を1行ずつ試したところ、
31 行目で引っかかりました。
>>> mnist['data'] = mnist['data'].astype(np.float32)
Traceback (most recent call last):
File "<stdin>", line 1, in TypeError: tuple indices must be integers, not str

mnist に 'data' とかいうキーはないね、と言われてます。

mnist だけ見てみます。
>>> mnist
((array([[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]], dtype=float32), array([5, 0, 4, ...
, 8, 4, 8], dtype=int64)), (array([[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]], dtype=float32), array([3, 8, 6, ...
, 5, 6, 8], dtype=int64)), (array([[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]], dtype=float32), array([7, 2, 1, ...
, 4, 5, 6], dtype=int64)))

'data' なんていう文字列は見当たらないような???

データ型を追うのは目的じゃないので、
train_mnist.py を変更することにしました。
以下を参考に。

bluewidz nota: mnist.pkl.gz の読み込み方
http://bluewidz.blogspot.jp/2013/02/mnistpklgz.html

mnist.pkl は解凍せずに使うことにしました。
train_mnist.py L28 .. L38 を変更。
import gzip
N = 40000 # 元の60000だとデータ数より多いらしいので減らした
ff = 'mnist.pkl.gz'
f = gzip.open(ff,'rb') #注:exblogの投稿の仕様上、閉じカッコを全角にしてあります
train_set, valid_set, test_set=six.moves.cPickle.load(f)
train_set_x, train_set_y=train_set
x_train, x_test = np.split(train_set_x, [N])
y_train, y_test = np.split(train_set_y, [N])
N_test = y_test.size


これでちゃんと動いたのでOKということにしました。
D:\Python27\archives\chainer-master\examples\mnist>python train_mnist.py
load MNIST dataset
('epoch', 1)
train mean loss=0.33063835158, accuracy=0.898124998361
test mean loss=0.162676717639, accuracy=0.947100001574
('epoch', 2)
train mean loss=0.153755561546, accuracy=0.95172500208
test mean loss=0.131504864115, accuracy=0.960300003886
('epoch', 3)
train mean loss=0.11874152357, accuracy=0.962600004375
test mean loss=0.113062846968, accuracy=0.965400006771
('epoch', 4)
train mean loss=0.0971574839624, accuracy=0.969350008518
test mean loss=0.103983323704, accuracy=0.967700006366
('epoch', 5)
train mean loss=0.0857273762824, accuracy=0.973425008357
test mean loss=0.101200945508, accuracy=0.972000008821
('epoch', 6)
train mean loss=0.0790844700066, accuracy=0.974600008726
test mean loss=0.104126119157, accuracy=0.972800009847
('epoch', 7)
train mean loss=0.0749579791015, accuracy=0.97680000931
test mean loss=0.0958447372471, accuracy=0.973500008583
('epoch', 8)
train mean loss=0.0661980926926, accuracy=0.978375010192
test mean loss=0.0982851918356, accuracy=0.973100009561
('epoch', 9)
train mean loss=0.0584314434149, accuracy=0.9810750103
test mean loss=0.113216444734, accuracy=0.969900010228
('epoch', 10)
train mean loss=0.0602908361913, accuracy=0.980450012088
test mean loss=0.0879984638083, accuracy=0.976200011373
('epoch', 11)
train mean loss=0.0514875223837, accuracy=0.983800010234
test mean loss=0.0894974586042, accuracy=0.975600011349
('epoch', 12)
train mean loss=0.0548883137996, accuracy=0.983050012439
test mean loss=0.102420077655, accuracy=0.974400009513
('epoch', 13)
train mean loss=0.0512076163373, accuracy=0.984175011665
test mean loss=0.100468366765, accuracy=0.974800007343
('epoch', 14)
train mean loss=0.0500191870244, accuracy=0.984925010055
test mean loss=0.0993473297404, accuracy=0.975400010943
('epoch', 15)
train mean loss=0.0470136474677, accuracy=0.984850009531
test mean loss=0.105845116437, accuracy=0.975900011063
('epoch', 16)
train mean loss=0.0477901911164, accuracy=0.984475011379
test mean loss=0.106810954099, accuracy=0.976200010777
('epoch', 17)
train mean loss=0.0459414152225, accuracy=0.985275010765
test mean loss=0.0922556833585, accuracy=0.978700011969
('epoch', 18)
train mean loss=0.0427814637575, accuracy=0.987350009829
test mean loss=0.106742422327, accuracy=0.9767000103
('epoch', 19)
train mean loss=0.0439296430166, accuracy=0.985900009423
test mean loss=0.100506027883, accuracy=0.978100011945
('epoch', 20)
train mean loss=0.0382296479004, accuracy=0.98825000897
test mean loss=0.109894825316, accuracy=0.978100010157

D:\Python27\archives\chainer-master\examples\mnist>


いいですねー。
学習で 98.8% で、
test データでも 97.8% 出てます。

chainer については、これからもうちょっと色々試してみます。
[PR]
by xiaoxia | 2015-07-01 17:47 | ソフトウェア | Comments(0)

ダメ女プログラマ&主婦&腐女子&バイオリン弾き


by 小霞