CentOS上のEclipseにプラグインを一気にインストールしようとして失敗
CentOS6.7のEclipse(Helios)に下記の3プラグインを一気にインストールしようとするがエラーを起こして止まる。
・Marketplace Client
・Eclipse Java EE Developer Tools
・Eclipse Web Development Tools
"インストール・ダウンロード2" 中に内部エラーが発生しました。 Comparison method violates its general contract! インストールする項目の収集中にエラーが発生しました セッション・コンテキスト:(プロファイル=PlatformProfile、フェーズ=org.eclipse.equinox.internal.p2.engine.phases.Collect、オペランド=、アクション=)。 アーティファクトのダウンロード中に問題が発生しました: osgi.bundle,org.eclipse.wst.command.env,1.0.409.v201004211805. MD5 ハッシュは期待されたものではありません。期待: 84614d6c0969a44318eecdc5f0dc313e で 790c9c5660db33a19040b7bafd284cc3 を検出。
何度も失敗するので原因を調べようと、
1.Eclipse Java EE Developer Tools
2.Eclipse Web Development Tools
3.Marketplace Client
の順に一つずつインストールすると……
正常に終了しやがった!
なんでさ なんでさ ななななんでさ
(士郎ラップ)
python3.5をpython3のデフォルト設定にしたらUbuntuで「端末」が起動しなくなった件
ぐへえ、という感じ。
Ubuntu15.04で、apt-getでpython3.5をインストールしたのち、python3.5をpython3のデフォルトに設定しました。
cd /usr/bin sudo rm python3 sudo ln -s python3.5 python3
再起動したら「端末」が起動しない!?
Launcherを押しても、アプリケーションから呼び出しても、ショートカットを押しても起動しない。
慌てず騒がず Ctrl+Alt+F1キー でコンソールモードに移行してターミナルを起動。
何が起きているのか追いかけていきます。
DISPLAY=:0.0 gnome-terminal
したらエラーが出て、
Traceback (most recent call Last): File "/usr/bin/gnome-terminal", line 9, in <module> from gi.repository import Glib, Gio File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module> from . import _gi ImportError: cannot import name '_gi'
は? と思って/usr/bin/gnome-terminalを見に行ったら一行目が
#!/usr/bin/python3
お前python3のスクリプトなんかい!
だいたいオチが見えてきたので、python3のデフォルトをpython3.4に戻します。
cd /usr/bin sudo rm python3 sudo ln -s python3.4 python3
再起動したら「端末」が起動するようになりました。
一連のスクリプトがPython3.4用に作られていて、Python3.5では動かないものと思われます。UbuntuでPython3がこんなにシステムに密着しているとは思いませんでした。
調べてみたらaskubuntuに同じネタが載ってた。
terminal won't launch after install python 3.5
askubuntu.com
いやー焦りました。
じゃけんUbuntuでpython3.5使いたいときはanacondaで仮想環境使いましょうね~。
gensimのshow_topicsオプション(メモ)
Python用のトピックモデルライブラリgensimのshow_topicsメソッド内で用いられるオプションについて。
昔はこうだった
lda.show_topics(topics=10, topn=10):
今はこう
lda.show_topics(num_topics=10, num_words=10)
いま上のように書くと「そんなオプションは知らん!」とすげなくされる。
MeCabのparseToNodeのひどいバグ
pythonからMeCabのparseToNodeを使うと表層形(surface)がおかしい。printでも出てこないし型の判別すらできない。
頭を抱えながらpython-mecabの再インストールなどさんざんやってからこちらのサイトにたどりつく。
www.trifields.jp
(以下引用)
MeCabのバージョン0.996で、この方法によりPython3からMeCabのparseToNode関数を使うと、最初のsurface(表層形)が表示されないというバグがある。 (中略) このバグの最も簡単な回避策は、parseToNode関数を呼び出す前に、一度、parse関数を呼び出すことで回避することができる。
なんじゃそりゃあ! という感じですがなんとか動きだしました。ありがとうございます。
『Python機械学習プログラミング』
Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)
なにかこう「一面コードだらけ」という本かなーと想像していたんですが、理論や描画の話も多く前処理にも章を割いています。本のアオリに「絶妙なバランスで『理論と実践』を展開」と書いてありますが偽りナシです。
しかしscikit-learnを使い始めるとコードがRと似てきますね。numpy.cov()とかnumpy.dot()とかも機械学習やってなかったら一生使わなかったと思います。
内容としてはパーセプトロンから始まってニューラルネットワークのTheano, Kerasで終わるというふうに幅広い技術をカバーしています。特にTheano, Kerasを扱っているのが今風ですね。これはもう立派な教科書です。とりあえずコイツを使ってコードを書かせて、理論面は他の教科書でもう少し勉強する、と。写経するだけでもかなりレベルアップできるでしょう。
「今からこの本で機械学習を勉強する」というひとはかなりお得ですね。名著だと思います。
hadoopメモ
clusteridは簡単に変わる。
そのせいでDataNodeが繋がらなくなる。
解決方法
・手動でdfs/name/current/VERSION内のClusterIDを修正する。
・さっくりdfs/name/以下を削除する。
「下丸子のコネクショニスト」さんの「CaffeでMNISTを学習した経過をプロットしてみた」を試す
iamrobotandproud.hatenablog.com
を試す。
なにかおかしいと思ったら、
事前に用意されたプログラムに誤植があるため、下記のように訂正した。
plot_log.gnuplot.exampleの42, 43行目を
set xlabel "Training loss"
set ylabel "Training iterations"から
set ylabel "Training loss"
set xlabel "Training iterations"に変更した。
の部分がすでに修正されていました。
あと、
実は、parse_log.shは現行バージョンのCaffeが出力するログ形式に完全に対応している訳ではなく、mnist.log.testにIterationのデータが出力されていない。
そこで今回は仕方なく、テスト時のプロットには学習時間を横軸に用いることにした。
の部分も今ではIterationのデータが出力されているので話が合わない。
ので、末尾に追加する部分を以下のように変更しました。
# Test accuracy vs. training time set ylabel "Test accuracy" set xlabel "Iteration" plot "mnist.log.test" using 1:3 title "mnist"
ありがとうございました。大変参考になりました。