pycharmでGit Pushができなくなってしまったら, 設定を見直す
pycharmでGitを使ったPushができなくなってしまう現象
バージョンを上げたあたりから, GitでPushやPull等, リモートを通信する機能が すべて使えなくなってしまった.
解決するには設定を見直す
Gitの設定で, SSH executable
を Native
から Built-in
に変える.
pycharm のNativeでは鍵の置き場とか何も指定していないので認証エラーがでてしまうのでしょう.
matplotlibで目盛りと目盛線を消す方法
目盛りを消す -> 表示させない
位置指定ができる
(略) plt.tick_params(labelbottom=False, labelleft=False, labelright=False, labeltop=False)
目盛線を消す
(略) plt.tick_params(color='white')
これは白にしたら見えないだろ,という戦法.本筋ではないが.
Kerasでモデルのロードがしくってしまったら
エラー文
ValueError: Optimizer weight shape (1024,) not compatible with provided weight shape (165, 1024)
(1024とかは埋め込み適当な数字なのであしからず.)
モデルを読み込むときにエラーが出てしまう....
model.load()
でエラーが出る....
といったところ.
モデルの再利用ができないと先に進めないこともあるので困ってしまう.
解決
load_model fails to load optimizer · Issue #3964 · fchollet/keras · GitHub
ソースは↑.的外れな解決法があったりするので注意が必要だが,概ねバージョンの問題.
要するに pip install -U Keras
で解決してしまう.
Kerasのバージョンが違う場合に読み込みエラーが出るのかと思っていたら,そうでもないようだ.現状版 2.0.8
では解決されている.自身のKerasバージョンをチェックすべし.
pip freeze
or conda list
等で調べてみよう. 2.0.0
〜 2.0.2
のあたりだったら最新版にアップデートしないとダメ.
mongodb で空のドキュメントを含むレコードを見つけるクエリ
MongoDB v3.4.5であるキーの中身が空のリストになっているレコードを見つけたい
{ _id: xxxxxxx, Nakami: [1,2,3], } { _id: xxxxxx1, Nakami: [] }
こういった具合。ちなみにNakamiにはindexをふっていない前提。
さていくつか方法があるのでみていきたい。 実行時間が速い順に並んでいる。
TEMP.find( { Nakami: { $size: 0} } )
TEMP.find( { Nakami: []} )
TEM.find( { $where : "thie.Nakami.length == 0" } )
最後の $where
を使うのはだいぶ効率が悪い。今は $size
を使うのがいいだろう。
参考ページ
mongodb - Query for documents where array size is greater than 1 - Stack Overflow
Find MongoDB records where array field is not empty (using Mongoose) - Stack Overflow
サーバーのディレクトリをマウントする
鯖のとあるディレクトリをマウントしたい(しかも手軽に)
NASとかそういうの別にいいので,さっさと読み出し権限だけでいいから欲しい.
という場合.
主に以下にあるわけですが,簡単に書くと, 別サーバのフォルダをマウントする|名古屋で働くエンジニアの覚書
mount -t nfs [IP address]:[マウントしたいディレクトリ] [マウントする手元のディレクトリ]
となって,つまり
mount -t nfs 192.168.0.XXX:/nas1/mydata /mnt/nas1/mydata
といったところだ. マウント先のディレクトリは作っておかないと上手くいかないので注意.
サーバーのディレクトリをマウントする
鯖のとあるディレクトリをマウントしたい(しかも手軽に)
NASとかそういうの別にいいので,さっさと読み出し権限だけでいいから欲しい.
という場合.
主に以下にあるわけですが,簡単に書くと, 別サーバのフォルダをマウントする|名古屋で働くエンジニアの覚書
mount -t nfs [IP address]:[マウントしたいディレクトリ] [マウントする手元のディレクトリ]
となって,つまり
mount -t nfs 192.168.0.XXX:/nas1/mydata /mnt/nas1/mydata
といったところだ. マウント先のディレクトリは作っておかないと上手くいかないので注意.
Python3 リストの中の要素を要素ごとにカウントする
問題
離散データが含まれているリストが与えられたとき, 最頻値を出してよ, とかヒストグラムもいいけど各年齢でどれくらいいるのか教えてよとか言われたりする.
そのとき, カウンティング関数を実装する?しない?面倒だな, 何か使えないか.
解答
Python標準ライブラリに含まれるcollections
を使う
In [1]: import collections In [2]: collections.Counter([14, 44, 32, 13, 24, 53, 14, 53, 66, 24]) Out[2]: Counter({13: 1, 14: 2, 24: 2, 32: 1, 44: 1, 53: 2, 66: 1})
このようになる.カウントはできたが, じゃあこの情報にどうアクセスするのかが重要(あまりにも基礎なことだからか,記載されているブログは少ない).
こいつは,公式にはこのように書かれている.
Counter はハッシュ可能なオブジェクトをカウントする dict のサブクラスです。これは、要素を辞書のキーとして保存し、そのカウントを辞書の値として保存する、順序付けされていないコレクションです。カウントは、0 や負のカウントを含む整数値をとれます。 Counter クラスは、他の言語のバッグや多重集合のようなものです。
ふむ, つまり mydict[ハッシュ値]
でアクセスできるということだ.
上記の例だと,
In [4]: mydict[66] Out[4]: 1 In [5]: mydict[14] Out[5]: 2
とやればカウント回数をとれる.
次に, カウント回数が最大・最小のキーは何かとか知りたい場合にどうするかを知りたい.
In [16]: max(mydict) Out[16]: 66 In [17]: min(mydict) Out[17]: 13
これでは,キーの最大値最小値しかとれていないからNG.
公式に,most_common()
なるものがあった.
最も多い n 要素を、カウントが多いものから少ないものまで順に並べたリストを返します。 n が省略されるか None であれば、 most_common() はカウンタの すべての 要素を返します。等しいカウントの要素は任意に並べられます:
なるほど,わからん.試してみると,
In [18]: mydict.most_common() Out[18]: [(14, 2), (24, 2), (53, 2), (44, 1), (32, 1), (13, 1), (66, 1)]
ここから最大カウントされているキーを取得することができるだろうか. カウントの最大は,
In [25]: max(mydict.values()) Out[25]: 2
で取得できる.じゃあキーはどうなのかは
Python の辞書に含まれる最大値のKeyを求めるクールな実装 - secretbase.log
を参考に以下のように書ける.
In [26]: max(mydict.most_common(), key=itemgetter(1))[0] Out[26]: 14
うーん,最大値が複数ある場合はキーの最小値が返されるようだ.これではアカン...と思いつつも脱稿.