クーの自由研究

大きな海は知らないけれど、空(宇宙)の深層を学習します。

今年(2017)の冬眠前の最後のご挨拶を申し上げます

ごあいさつ

こんにちわ、こんばんわ。かえるのクーです。

突然ですが、今年はこれで最後のブログとなります。今年も1年間どうも有難うございました。(あとは助手がたまに保守していきます。)

f:id:np2LKoo:20171118210551j:plain

さて、このブログは、がちがちの「技術情報」系と、怪しげトンデモに分類されがちな「スピリチュアル」系要素(ほんのすこし)と、ボクの「どうでもいい日常」系をおりまぜて、したためております。

情報系としてのブログ

時間がとれないので実験がまったくできず、書くことがありません。
音に関する実験については、今年は「音を自己符号化器に学習させる」がテーマでしたが、道半ばにして放置状態です。来年がんばります。来年のことをいっても「なめくじも喰わない」ので、期待しないでください。

スピリチャル系としてのブログ(ボクはUFO大好き!)

あんまり書くと怪しく感じる心理はよく理解しているつもりなので、エッセンスぐらいにしています。今回は、冬眠の重要なポイントなのでストレートに書きます。
今年はひさびさの大きな太陽フレアがありましたが、前後して太陽波動の位相がすこしかわっています。その影響かわかりませんが、この時期のボクの安定に影響がでています。(太陽波動は人類の大衆心理、とくに景気に影響することが知られています。一層「物質重視から経験・体験重視型」にうつるでしょう。)
できればがんばりたい気持ちは強いですが、早いですが今年はもう「おいとま」致します。

編集部より:連絡がつかないので、勝手に追記コメント編集します。冬眠まぎわのかえるの妄想とお考えください。もちろん、クー自身はスピリチャルな存在ではなく「ごく普通のかえる」です。)

たわいない日常系ブログ

ボクのオキニをさらしていくコーナーでしたが、こちらもネタが枯渇ぎみです。
「寒い」のひとことにつきます。今週は明け方ともいえるAM 4:30まで頑張らないといけない日もありました。眠いです。
忙しいことはいいことだ~(魂のさけび)

さて、前回はベースの切り口でしたが、ボクの「良心」ともいえる面に響く曲をご紹介しました。ドラム編がないとさびしいのでドラムもはっておきます。

10月10日はドラムの日(でした)

千里ちゃん最高!!

本買ってたら、DVDかえなくなっちゃった。来年買うね。

この年齢にして「世界のドラマー500人」のひとりに選ばれたこともあるそうです。すごすぎます。

 

今年は最後に、「ボクの暗黒面」に響く曲と、「まで到達」しちゃう曲をかけておわかれです。
良心面」と「暗黒面」と「純粋な」があってこその生命体の到達点です。

編集部より:かえる界ではそのように考えられているようです。人類のそれとはすこし違うようです)

「ボクの暗黒面」に響く曲

説明はあえてしません。
聴く人を選ぶ曲なので、これ系が苦手な人はご遠慮ください

ただ、ただ楽しい。

夢野久作ドグラ・マグラ」やディズニー「美女と野獣」etc.がモチーフのようです。「エニグマ」とあるのは、ある意味「解析できるものなら、解析してみよ!」との挑戦状のようにも思えます。(実は意味がなく、空(empty)あるのみ、だったりして。)このアプローチはこのブログに通じるものがあります。

「魂まで到達」しちゃう曲

 感受性の強い方は上の曲より心が「かき乱される」かもしれません。ご注意ください。

 いいなと思った方は「オリジナルボーカル版」も聞いてみてください。

アニメ「灰羽連盟」を知らない人のために紹介記事など(ネタばれあり)

 アニメは、心が不安定な時にはみるのは避けたほうがよいです。「トラウマになりかねない。」なんてひどいことをいう人もいます。でも、「わかっちゃてる」人が制作にいるのは違いないです。

編集部より:クーは「自分はわかってる」つもりで書いていますが、冬眠前の錯乱で皆さま方には温かい目でみていただきたく、よろしくお願いいたします)

今年の冬眠の子守歌です。おやすみなさい。

では、今年こそは「宇宙図書館」へはいれることを夢見て、そして来年生還できることを願って。

ごきげんよう
達者でなァ。

I will hibernate soon. I hope to see you again next year.

11月11日は棒とベースの日

今日は何の日?

こんにちわ、こんばんわ。かえるのクーです。

今日はぞろ目の日とあって、いろいろな日になっています。

「じゃない方」の棒状のお菓子もたべましたが、「ベースの日」でもあるそうです。

f:id:np2LKoo:20171111213709j:plain

いわれはしらないのですが、1111 が4弦にみえるからなのでしょうか?

それなら、もう過去のことですが、西暦1111年11月11日11:11は12弦ギターの日・時刻だったのかなぁ。

ミュージシャンは詳しくはないですが

好きなベーシストはいずれも故人ですが、ジャコ・パストリアスクリス・スクワイです。(ジョン・ウェットンとかも大好きですが、同様にあげていくとプログレベーシスト全員になりそうなので控えます)あ!、秋山澪ちゃんを忘れていた!

どれも好みがミーハーですが、ジャコ・パストリアスの曲では「トレーシーの肖像」、クリス・スクワイアではの「Heart of the Sunrise/YES」が大好きです。(超定番なのでミーハーといいましたが、この組み合わせがもしかして既にマニアックなのでしょうか?)

往年の鬼気迫る緊迫感ではなく、達観した境地がまたいい感じです。

ジャコ・パストリアスでは、ほかにパット・メセニーとの「ブライト・サイズ・ライフ」が大好きです。次元を超越しています。宇宙のかなたまで魂が拡大します。さすがに、これは映像がみつかりません。

クリス・スクワイアの個人的次点としては「Sound Chaser/YES」かなぁ?いくつかバージョンがあるようですが、パトリック・モラーツ(キーボード)とのグルーブ対決が炸裂するバーション(実は正式にどれなのか知らない)が好きです。↓のライブよりすごいスタジオバージョン?があります(たぶん:持ってないですけど聞いたことがあります。リミックスかリマスタなのかもしれません)。

おまけ:曲としてはそれほど好みではないですが、クリス・スクワイアのトレブリーな奏法が、あますとこなく聞ける動画がありました。ドラム:ビル・ブラッフォード+キーボード:パトリック・モラーツ、バックにオーケストラをはべらせる、超豪華さ。

おやくそく 

 レッツゴーだってばさ。(澪たんは棒弾きがよくにあうwww)というわけで、11月11日は、澪たんの日に決定!!

今日のお題はこれだけでした

すみません。超多忙(いそがしいことはいいことだ~)で実験が全く停滞です。冬眠までこんな状態っぽいので、あとは、来年がんばります。*1

イメージを膨らませる本が好きです(ほしい本など)

人類がどのように幻獣(比較的波動が粗いスピリチャルな存在:眷属のうち、「人」由来でないものなど)を感じ、イメージしているかとても興味があります。

f:id:np2LKoo:20171111220357j:plain

この本がほしいな~と思っています。あまりに多く情報をいれるとイメージが固定されますが、少なすぎてもイメージが膨らみません。

さて、寒くなってきました。風邪がはやっており、この時期体調を崩される方も多いと聞いています。くれぐれも体が冷えないように、そして手をよく洗われるなど予防に気を配ってください。「予防」にはマスクより、除菌ウエットティッシュを携帯して日に何度も使うほうが効果的だと思います。

では、また。

(祝自分)100記事いった!

気づくとこのページが100記事目でした。100という節目が余談・つなぎ記事なのは、ボク的には「ありよりのあり」です。実験記事のほうがどちらかというと前振りで、最後の余談(かえるのあしあと)部分がブログとしての本編(ブログとして発信したいこと)で~す。

*1:来年がんばる:人間界では「鬼が笑う」というらしいですが、かえる界では「ナメクジも喰わない」といいます。

人間界とかえる界の文化比較
鬼が笑う。:鬼が笑うことはまずないので、可能性が非常に低いことを確率論的に比喩(揶揄?)したたとえ
ナメクジも喰わない。:なんでも食べる悪食のナメクジですら食べない、情報の価値のなさを比喩したたとえ
将来の確率論としてとらえるか、現時点での情報の価値としてとらえるかに文化的な違いが見いだせます。

助手のみなさん!冬はみんなで「物理エンジン」がんばろう!!

発表:今年の冬はコレだ!

こんにちわ。こんばんわ。かえるのクーです。
内輪ネタで申訳ありません。

前回の記事で「今年の冬は「ボカロ」する余裕ないかも。」と書いたら、内輪が騒然としたようです。気を揉ませても申訳ないので、すこし早い時期ですが、今年の「冬」のお題を発表します。

f:id:np2LKoo:20171105001619j:plain

物理エンジン」を使えるようになりましょう。
実は、この冬のお題について、噂がたっているのを知りましたが、まさに噂とおりのお題です!皆でがんばりましょう!!

今年の話題で「物理エンジン」に多大な興味をもったことと、最近買った「物理学」の本から「おそらくクーはこう考えてる!」とプロファイリングをされてしまったようです。そのとおり。お見事です。

このブログは冬季は特別なの?

さて皆さまには「何のこと?」だとは思いますので、簡単に説明します。
このブログはちょっとかわったところがあり、冬の期間(、つまりブログの主催者のボク「かえるのクー」が冬眠している期間(だいたい12月~3月))は、助手がこのブログの保守をすることになっています。
本当は、記事の誤字脱字修正を行うことと、動向の補完説明などを1ヶ月1回以上、助手にかいていってもらうものでした。昨冬は一部助手が、暴走気をきかせて、「ボカロ」のプロジェクトをすすめました。一定の成果はあったようです。
もしかしたら、「今年もやろう」的な流れがあったのかもしれません。もちろん、流れを邪魔する気はありません。

今年の冬のメインテーマ

ただ、ブログ主催者として、「今年の冬のメインテーマ」は「物理エンジン」にしたい!のです。
前回の冬は「お題」はありませんでしたが、「テーマを決めて短期間にクローズする」のはとてもいいことだと学習しました。(物理エンジン&3Dは敷居が高いので、3シーズンぐらいかかるかもですが)
乗り気でない方もいると思いますし、なにより「ボク自身が行う」ことで「ない」のですが、この少なくともこのブログの方向性はボク自身が決めたいのです。是非これをお願いしたいと思います。

物理エンジンとは

の記事の中でも扱った(というより教えていただいた)「チャンネル人工知能」様

のような【物理エンジン】です。


上の動画のように単なる計算で求められるものであっても、【物理エンジン】で実演することにより圧倒的な説得力をもつことができます。素晴らしいのひとことです!


また、物理エンジンでの計算結果により、生存最適実験や進化最適実験、自己符号化器による計算結果のシミュレーション検証など実に多彩な実験ができます。万能実験室が手に入るのと同等だと思いませんか?
ほ~ら、みなさん、やりたくなってきたでしょ???

案外情報が少ないのです(とくに超初心者むけの)

真剣に調べた訳ではないのですが、物理エンジンに関する結果発表は多数あるのですが、実使用上の情報はあまりありません。
そのため、試行錯誤しながらの学習になるとおもいますが、それでも物理エンジンを使えるようになっていきたいのです。
単なる物理エンジンの計算方法だけでなく、その表現方法としての3Dグラフィックや「見せ方」のテクニックも含めてチームとして学習していければと思います。

3D系については、blenderあたりがよいと思っているのですが、ほんとうにそれでいいのかもわかりません。最初はunityからはいるのがいい話題もあるようです。

blenderだけでもある程度は物理計算できるようですが、物理エンジン本体としてはBullet がいいという情報が多いです。Pythonからもばっちり使えるようです。

Real-Time Physics Simulation

このあたりを含めてがんばってください。
とにかく「チャンネル人工知能」様はあらゆる点で超一流だと思います。参考にさせてもらってください。

チャンネル人工知能様のYouTubeをひととおりみたら(助手の皆さま閲覧必須)、後は他のお好みのYouTuber様もみつけてどんどんみてみましょう(任意)。

チュートリアル動画も(製品版だけど)いろいろあるみたいですよ。

ピタゴラ装置みたいほうがお好みかな?

(追記)本気であることを示します

助手のみなさんに丸投げではないです。もちろんボクも学習します!(たぶん冬眠明け後)

本気であることを示すためにも(どうせ必要になることからも)参考書をクリックしました。まったく不案内な領域なので、書評をみてなんとなくクリックしました。

f:id:np2LKoo:20171105182212j:plain

f:id:np2LKoo:20171105182240j:plain

f:id:np2LKoo:20171105182354j:plain

f:id:np2LKoo:20171105182419j:plain

みなさんは「Blender標準テクニック ローポリキャラクター制作で学ぶ3DCG」あたりを買ったりするのかな?

f:id:np2LKoo:20171105182856j:plain

上をクリックするときに、一押しレコメンドされました。

こういうモティベーションも必要だとは思いますwww

上をこなしたら、次に検討してみます。

(追記ここまで)

鮮やかな紅葉の候の予定

来週いっぱいまで、お出かけが続き、そのあとは多忙なまま今年の活動を終え、冬眠にはいる気がします。
去年は11月24日だったと聞きましたが(記憶がないです)、ことしはできれば12月はじめまで活動したいと思います。がんばります。

 

プログレでブログれ!

音楽を聴いてがんばる

こんにちわ、こんばんわ。かえるのクーです。

とっても忙しいです。忙しいことはよいことです。がんばります。

さて、ボクは助手であり、「聖なる館」住人の「井戸中 聖(いとなか あきら)」氏の影響で「プロブレッシブロック」という音楽のジャンル?にはまっています。主に1970年代です。

アイコンのネタもそれ系のものがあります。

 f:id:np2LKoo:20171101010605p:plain

ハロウィン期間のピーター・ガブリエル

コスプレのアイコン

f:id:np2LKoo:20170712200530p:plain

グレッグ・レイク追悼期間の

タルカス喪服アイコン

特に、ハロウィンのアイコンは、このブログのコンセプト「Watcher Of The Skies」そのものですから、オキニです。

プログレの話題はボクが冬眠中に「聖(あきら)」氏がやるでしょうから、今回は、ボクが初音ミクを好きになったきっかけの曲をはるブログとなります。(前にも貼りましたねぇ)

初音ミク大好き!

実は初音ミクは最初あまり興味がありませんでした。
独特な感じや、脱力感や、感情があまりのらない分、逆に歌詞の内容がストレートにとどくおもしろさは感じていたものの、自分から聞くことはありませんでした。
ところが、↓これを聞いて180度ひっくり返りました。
なんとなく感じていた「人工的な限界」を軽く破り、(ボクにとってですが)可能性は無限大であることを知らされました。何度も貼っていますが、またはります。

ELPのタルカスというより、平清盛/吉松隆版タルカスですが、大好きです。

初音ミクプログレ

さて、「初音ミクプログレ」は本当にニッチなジャンルですが、いろいろあることに驚きました。
さむい (id:zappazepp)様のグログ「初音ミクプログレ」の記事がありました。
半分以上知らないものでした。どうもありがとうございます。(その前のポリリズムの記事も素晴らしいです)

とくに「マグマ」というグループの(ミクボーカルの)存在に驚きました。世の中本当に広いです。動画込みだとディシプリンが最高です。ミク電車乗りたい!!!

さて、ここでおわると聖(あきら)氏にすねられてもこまるので、いちおう貼っておきます。

今年の1月から3月にかけて、助手のみなさまが作成した作品?です。

Renaissance(ルネッサンス)の Carpet of the sun (カーペット・オブ・ザ・サン)という曲です。これは「プログレ」といえるかわかりませんが、グループとしてはそのカテゴリーにはいるそうです。
何回貼ってもだれも見ないことは実証済ですが、貼ることに意味があります。

なお、このyoutube動画はKoo Wells名義ですが、ボクの冬眠中に聖氏ほか助手チームがつくったもので、ボクは関与してません。作成のいきさつは「るりいろのへやへようこそ 」や「聖なる館-PPAP!」あたりの記事にありますので、あれ?打ち込みじゃないよね?と興味持たれた方はどうぞ。一部だけ打ち込みみたいです。
ミクお試し版を使って原曲にテンポをあわせてボーカルだけ録り、あとから曲をあわせたと聞いています。
6月に24回再生だったのが、いま確認したら28回になってました。再生回数は何かを物語ります。
音の実験の素材として、ボクの実験で活躍していますので、意義はありますよ~。(さりげなく追い打ち)

(追記)

朗報!聖(あきら)氏、芽守(メモル)ほかみなさんの努力がついにわれる日がやってきました!!!

この「ブログ」お題のおおもとである、さむい (id:zappazepp)様よりブックマークコメントで、これ以上ないくらいの最高評価をいただきました。さむい 様どうもありがとうございます。

(追記ここまで)

寒くなってきました

今年の冬は助手の皆さんにブログの「お題」を考えていますので、ボカロをする余裕はないかも(そもそも買ってないか)。あしからず。

大切な人にこそ本物のブログを贈りたい(かえるのクー編)

ブログのネタにこまったときは

さて、長期おでかけで、実験もままならず書くことがありません。

f:id:np2LKoo:20171021003839j:plain

f:id:np2LKoo:20171022155546p:plain

f:id:np2LKoo:20171021004312j:plain

 最近、当ブログに訪問いただいたJUN10 (id:kazu8ism) 様のブログに、「ネタでこまったとき」の記事がありました。こちらに紹介されている、「ブログ作成支援」に従ってむりやり記事を書いてみたいと思います。

タイトルもこのツールで生成してもらいました。

◆ 1 書き出し(結論で伝えたいことの反対のこと・原因となることで書き出します。

例)私、ブログにいつも悩まされているんです。
例)突然ですが、ブログで困っていませんか?
例)ブログについて、自分は・・・・だと思っていました。
例)あなたは、間違った・・・・をしていませんか?

なるほど、これだと一番上がいいですね。

 

ボクの悩み

ボク、ブログにいつも悩まされているんです。
何故って、理想は高いのに、ボクが書ける内容が貧弱すぎて、自分で後で読んでもイヤになるくらいです。

 

 

( まぁ、導入はこんな感じで。)

次は説明ですね。

◆ 2 説明(具体例やたとえ話で内容をわかりやすくして、読者に伝えます)

例)たとえば、・・・・なことだったり、・・・・なことがありますよね。
例)ブログの・・・・って、簡単に言えば、・・・・ということですよね。
例)・・・・なことって、よくありますよね。

これも最初のやつかなぁ。。。。

 

例えば

自分の考えや構想をカッコよく数式で表したり、、最新の論文にでている数式をロジックにしてさらっと組んで、実験して公表したいことなんて、よくありますよね。
でもなかなか、そんなことはできません。
どうやったら、もっと数式の本質を知ることができるのでしょう。そして使いこなせるようになるのでしょう。そんな方法は果たしてあるのでしょうか?

 

 

(う~ん。なかなかいい感じですね。)

◆ 3 解決法(上記1、2の解決法を書きます)

例)でも、・・・・をすることで、・・・・が解決するんです。
例)・・・・を・・・・したら、・・・・もうまくいったんです。
例)でも、ブログがあれば、・・・・が解決できますよ。

 これは、1番と2番の間くらいで。。。

 

解決法はこれだ!

でも、「物理学」を勉強することで、数式現実が繋がるんです。

 

そう、世の中は物理法則で成り立っています。それを数式で直感的に感じることができるようになれば銀河の運行から素粒子、はては量子力学まで、その本質を垣間見れるのです!いえ、むしろ初等物理での現実に対する数学を理解していけるからこそ、やがてはより高度な数式から、数学を通して現実を理解しているけるようになるのかもしれません。

 

(う~ん。でも、こんなこと、ボクが言い切っていいのかな?)

 

 統計学ブームの次には必ず物理学が来ます
今はがぜん「ベイズ統計学」と「脳神経科学」を自習中ですが、これに「物理学」を加えることにします。

 

 

(わ~。こうなってしまいました。)

◆ 4 結論(思ったこと、他人に望むこと、自分の決意や覚悟を書きます)

例)というわけで、ブログを・・・・してみたいと思います。
例)これからは、ブログが必要不可欠です。
例)ぜひ、ブログをしてみることをおすすめします。

 上の例でも一番上がよさげです。

やるぞ!

というわけで、物理学をマスターしてボクのブログを数式だらけにしてみたいと思います。(統計学もがんばるぞ~)

 

(決意以外に実現方法も書かないとですね。)

 

物理の勉強といえば、そう某進学塾の「苑田 尚之先生」です。
ボクはかえるなので、通えませんが、幸いYouTubeなどに「ほんの少しだけ」どんな感じかがのってます。
「ハイレベル物理」を受講する(つもり)になって勉強します。

数式は言葉です、計算じゃない。
頭の中で見えていないといけないんです。
定義がちょっとでもあいまいだと途中で間違ってくるんだよ。
あれ、これ本当かなって思ったら自分でチェックする。
自然科学ってモデルなんです。あくまで。
ものを自分でかんがえるってどういうことなのか。それをお話しできたらなと。

う~ん。ぐっときます。最高です。

物理を勉強して数式で考え数式で伝える技をマスターし、このブログを数式だらけにしちゃうことをここに宣言します!

 

(こんな感じでしょうか。ますます読者がいなくなる予感。本当にこれでいいのかな?
完全な数式コンプレックスの裏返しですね。)

 

本気で数式を書きたいと思っていますが、そうできるかは勉強次第、ということで。

 

 さて物理の本をクリック、クリック。いろいろあるけど、ネットでは「親切な物理」とかが評判みたいです。諸先輩方絶賛です。「なか見!検索」を少しみただけでも、情熱と気配りが感じられます。

f:id:np2LKoo:20171021000950j:plain f:id:np2LKoo:20171021001220j:plain f:id:np2LKoo:20171021024737j:plain

 新・物理入門 (駿台受験シリーズ)  と迷ったけど、ボクには親切な方があっていそうな気がしました。同時に山岸涼子先生の「イシス」も購入。お出かけ前に間に合うかな?

(さらに×3追記)なぜか親切な物理(上)だけ間に合いました。旅のお伴に「親切な物理(上)」を読みながら、自分のかえる生を見つめなおします。(追記×3:ここまで)

 

 わお、本当にネタが何もないのに、かけた!すごい!

でも内容は。。。単なるお買い物ブログでした。でも単に「買ったよ」よりは断然よいです。

 

キャッチコピーもつくってもらいました。

【キャッチコピー・企画コンセプト案2】

さぁ、始まる、本気の自己符号化器

 

住みかに一時的にかえってきました

用事があるのでいったん住みかに戻りましたが、またすぐにおでかけです。(台風をさけて日曜移動です)次も3週間いってきます。予定では10月末までだったのに、少し延長です。

ますます太る予感。

 

 (さらに追記)

記事をおこすほどでもないのでここに追記します。久しぶりに住みかのパソコン使ったら、途中に急にRe:Bootする し、WiFiはつながらないわで大変。特にWiFiは5年くらい前のもので超絶調子悪いので、新しいWiFiルータをクリック。出費がかさみます。

f:id:np2LKoo:20171021143901j:plain

評判のよさそうだった TP-Link Archer C1200というのをクリックしました。

延長設置用のLANケーブルを含めて6,500円くらいでした。

お出かけ先の生活費がかさんでPC貯金が一向にたまらないのですが、来年は借金してでも実験に耐える「まともなパソコン」を買う予定です。ボクの「春~昏」をすべて自己符号化器にかけるつもりです!

 

 (さらにさらに追記)

お出かけ先では、(当然ですが)住みかのメインディスプレイとは別のディスプレイを使用しています。交互に使用して初めて気が付いたのですが、ブログのカラーバランスが全然とれていないことにようやく気が付きました。目に痛いくらいです。メインのマシンはディスプレイの特性なのか、落ち着いた色になっています。このメインマシンで調整したため、他の機器では私の意図より、かなり色がきつく表示されているようでした。ここは誰もアドバイスくれないところだったので、今まで気が付きませんでした。

時間がとれるときに調整します。

色がきつくてごめんなさい。

 

Atomで夜ごと心から辟易する母なるかえるのために

今回はデバッグに関するお題です

こんにちは、こんばんわ、かえるのクーです。
危険な音」をきいて暗黒面に堕ちましたが、生還してきました。

f:id:np2LKoo:20171015125120p:plain f:id:np2LKoo:20171015125128p:plain

へんなタイトルですみません。(細かすぎて伝わらないネタ系です)

Atomマシンでのデバッグをなんとかする

Atomマシンで機械学習の勉強ををされている方も多いと思いますが、いかんせん非力です。遅いだけなら待っているだけでいいのですが、タイムアウトが多発してデバックになりません。
タイムアウトを伸ばすとクリックするごとに10分以上まつはめになります。
お気楽なボクでもこれには耐えられません。

f:id:np2LKoo:20171015140601p:plain

そこで、デバック用に変数の内容をレポートするロジックをつくりました。
Atom機でデバッグタイムアウトに悩む、同志のかえるさんやおたまじゃくしさんのお役にたてるかもしれないので、恥ずかしいソースながら貼ってみたいと思います。
汎用的に作ったつもりですが、今調整しているプログラムがメインターゲットなので、機能の過不足はあるかもしれません。
用途に適さない方は、いろいろ改変してお使いください。

こんな方におすすめ

Atomデバッグに悩む方
デバッグタイムアウトになり、変数の内容が見れない方
・多量の配列や変数の内容の概要を確認したい方
・配列を多次元に掘り下げ、収集がつかなくなったしまった方

主作用(機能と効用)

機能は見てのとおり、変数を引数に入れて呼ぶだけなシンプルなものです。
工夫したところは、以下の感じです。

・変数をセットしただけで "変数=" の部分を表示する。
・変数の型を表示する。
・配列はPytorch「風」に配列の大きさや内容を示す。
・多量のデータを扱うことがあるので、配列はデータの最初と最後くらいだけを表示する。

副作用

チェック機能やデバッグ機能に頼りすぎると、いきあたりばったりのコーディングをする生活習慣に陥る可能性があります。過剰摂取と長期服用による依存には十分ご注意ください。
日頃より、シンプルな設計とリファクタリングを怠らず、デバッグ機能に頼るのは必要最小限になるよう、心がけましょう。

有効成分

inspect:コードの調査を行うためのライブラリです。
re:正規表現を使えるようにするライブラリです。。
numpy:標準的な各種処方を行うライブラリです。

用法と用量

Atom、(もしくはCeleron,Semron)機以外の高スペックCPUの方はご利用に注意ください。おそらく、標準のデバッガをうまく使用したほうが幸せと思われます。


なお、Pytorchについてはガリガリ (id:s0sem0y)様の記事を読ませていただいております。わかりやすい説明に感謝です。

(あくまで個人の見解です)

ボクはこの機能でかなり(というか超絶)デバッグが捗るようになりました。
Atom機でPythonデバッグに悩んでいるすべての方におすすめします。

ソース

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
import inspect
import re


class KooChecker():
def __init__(self):
pass

def rpt_obj(self, *args):
out = ''

back_frame = inspect.currentframe().f_back
back_code = inspect.getframeinfo(back_frame).code_context[0].replace(" ", "")
pos = back_code.find("#")
if pos != -1:
back_code = back_code[:pos]
arg = re.search(r"\((.+)\)", back_code).group(1)
# 呼び出し元関数の引数の変数名を取得。
arglist = arg.split(',')
ii = 0
for obj in args:
target = arglist[ii]
ii += 1
if isinstance(obj, bool) or \
isinstance(obj, int) or \
isinstance(obj, float) or \
isinstance(obj, complex):
out += '|' + target + ' = ' + str(obj) + ' ' + self.chktype(obj)
elif isinstance(obj, set) or \
isinstance(obj, frozenset):
out += '|' + target + ' = ' + self.rptset(obj) + ' ' + self.chktype(obj)
elif isinstance(obj, str):
out += '|' + target + ' = ' + self.rptstr(obj) + ' ' + self.chktype(obj)
elif isinstance(obj, bytes) or\
isinstance(obj, bytearray):
out += '|' + target + ' = ' + self.rptbytes(obj) + ' ' + self.chktype(obj)
elif isinstance(obj, list) or \
isinstance(obj, tuple) or \
isinstance(obj, np.ndarray):
out += '|' + target + ' = ' + self.rptlist([], obj) + '\n' + self.chktype(obj)
elif isinstance(obj, dict):
out += '|' + target + ' = ' + str(obj) + '\n' + self.chktype(obj)
else:
out += '|' + target + " =(DisplayNotImpliment) " +self.chktype(obj)
print(out)

def rptstr(self, obj):
strlen = len(obj)
# 表示内容を40文字までに抑制する
if strlen <= 40:
rtn = '"' + obj + '"'
else:
rtn = '"' + obj[0:20] + '...' + obj[strlen - 20:strlen] + '"' + "(len=" + str(strlen) + ")"
return rtn

def rptbytes(self, obj):
byteslen = len(obj)
# 表示内容を40byteまでに抑制する
if byteslen <= 40:
rtn = str(obj)
else:
rtn = str(obj[0:20]) + '...' + str(obj[byteslen - 20:byteslen]) + "(len=" + str(byteslen) + ")"
return rtn

def rptset(self, obj):
setlen = len(obj)
# 表示内容を20項目までに抑制する
if setlen <= 20:
rtn = str(obj)
else:
setstr = str(obj)
ss = (setstr.rsplit(",", setlen - 10))[0]
se = (setstr.split(",", setlen - 10))[-1]
rtn = ss + ', ...' + se + "(len=" + str(setlen) + ")"
return rtn

def rptlist(self, arglevel, obj):
out = ''
datalen = len(obj)
if datalen == 0:
out = '[]'
elif datalen <= 8:
for i in range(datalen):
if isinstance(obj[i], list) or \
isinstance(obj[i], tuple) or \
isinstance(obj[i], np.ndarray):
level = arglevel.copy()
level.append(i)
out += self.rptlist(level, obj[i])
else:
out += str(obj[i]) + ' '
else:
for i in (0, 1, 2, 3, -4, -3, -2, -1):
if isinstance(obj[i], list) or \
isinstance(obj[i], tuple) or \
isinstance(obj[i], np.ndarray):
if i in (0, 1, -2, -1):
level = arglevel.copy()
if i >= 0:
level.append(i)
else:
level.append(datalen + i)
out += self.rptlist(level, obj[i])
if i != -1:
out += '\n'
elif i in (2, 3, -4, -3):
pass
if i == 2:
out += '...\n'
else:
if i == 0:
out += str(arglevel) + '= '
out += str(obj[i]) + ' '
if i == 3:
out += ' ... '
elif i == -1:
out += '(len=' + str(datalen) + ')'
return out

def chktype(self, obj):
rtn = ''
if isinstance(obj, list) or \
isinstance(obj, tuple) or \
isinstance(obj, np.ndarray):
if len(obj) == 0:
rtn = self.chktype_name(obj) + ':0'
else:
rtn = self.chktype_name(obj) + ':' + str(len(obj)) + '*' + self.chktype(obj[-1])
else:
rtn = self.chktype_name(obj)
return rtn

def chktype_name(self, obj):
name = str(type(obj)).replace('<class ', '').replace('>', '').replace("'", "")
name = '<' + name + '>'
return name

用法

if __name__ == '__main__':
kc = KooChecker()
a = 1
b = 12.56
c = False
d = 2 + 3j
e1 = ''
e2 = "ABCDE123456" * 100
f1 = b''
f2 = b'A' * 100
g = bytearray(b'ABC' * 100)
h = set(range(100))
i = frozenset(range(100))
j1 = []
j2 = [range(100)]
j3 = [[range(10)],[range(20)],[range(30)]]
j4 = list(np.arange(10 ** 4).reshape((10, 10, 10, 10)))
j5 = [[list(np.arange(10 ** 2).reshape((10, 10)))] * 10] * 10
k1 = ()
k2 = (1,2,3,4,5,6,7,8,9,0)
k3 = (((1,2,3),(1,2,3),(1,2,3),(1,2,3),(1,2,3),(1,2,3),(1,2,3),(1,2,3),(1,2,3)) * 10)
l = {'one': 1, 'two': 2, 'three': 3}
kc.rpt_obj(a,b,c,d,e1,e2)
kc.rpt_obj(f1,f2,g,h)
kc.rpt_obj(i)
kc.rpt_obj(j1)
kc.rpt_obj(j2)
kc.rpt_obj(j3)
kc.rpt_obj(j4)
kc.rpt_obj(j5)
kc.rpt_obj(k1)
kc.rpt_obj(k2)
kc.rpt_obj(k3)
kc.rpt_obj(l)
kc.rpt_obj({'key': 100})

コンソール出力

|a = 1 <int>|b = 12.56 <float>|c = False <bool>|d = (2+3j) <complex>|e1 = "" <str>|e2 = "ABCDE123456ABCDE1234...CDE123456ABCDE123456"(len=1100) <str>
|f1 = b'' <bytes>|f2 = b'AAAAAAAAAAAAAAAAAAAA'...b'AAAAAAAAAAAAAAAAAAAA'(len=100) <bytes>|g = bytearray(b'ABCABCABCABCABCABCAB')...bytearray(b'BCABCABCABCABCABCABC')(len=300) <bytearray>|h = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 90, 91, 92, 93, 94, 95, 96, 97, 98, 99}(len=100) <set>
|i = frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... 90, 91, 92, 93, 94, 95, 96, 97, 98, 99})(len=100) <frozenset>
|j1 = []
<list>:0
|j2 = range(0, 100)
<list>:1*<range>
|j3 = range(0, 10) range(0, 20) range(0, 30)
<list>:3*<list>:1*<range>
|j4 = [0, 0, 0]= 0 1 2 3 ... 6 7 8 9 (len=10)
[0, 0, 1]= 10 11 12 13 ... 16 17 18 19 (len=10)
...
[0, 0, 8]= 80 81 82 83 ... 86 87 88 89 (len=10)
[0, 0, 9]= 90 91 92 93 ... 96 97 98 99 (len=10)
[0, 1, 0]= 100 101 102 103 ... 106 107 108 109 (len=10)
[0, 1, 1]= 110 111 112 113 ... 116 117 118 119 (len=10)
...
[0, 1, 8]= 180 181 182 183 ... 186 187 188 189 (len=10)
[0, 1, 9]= 190 191 192 193 ... 196 197 198 199 (len=10)
...
[0, 8, 0]= 800 801 802 803 ... 806 807 808 809 (len=10)
[0, 8, 1]= 810 811 812 813 ... 816 817 818 819 (len=10)
...
[0, 8, 8]= 880 881 882 883 ... 886 887 888 889 (len=10)
[0, 8, 9]= 890 891 892 893 ... 896 897 898 899 (len=10)
[0, 9, 0]= 900 901 902 903 ... 906 907 908 909 (len=10)
[0, 9, 1]= 910 911 912 913 ... 916 917 918 919 (len=10)
...
[0, 9, 8]= 980 981 982 983 ... 986 987 988 989 (len=10)
[0, 9, 9]= 990 991 992 993 ... 996 997 998 999 (len=10)
[1, 0, 0]= 1000 1001 1002 1003 ... 1006 1007 1008 1009 (len=10)
[1, 0, 1]= 1010 1011 1012 1013 ... 1016 1017 1018 1019 (len=10)
...
**(略します)**
...
[9, 9, 8]= 9980 9981 9982 9983 ... 9986 9987 9988 9989 (len=10)
[9, 9, 9]= 9990 9991 9992 9993 ... 9996 9997 9998 9999 (len=10)
<list>:10*<numpy.ndarray>:10*<numpy.ndarray>:10*<numpy.ndarray>:10*<numpy.int32>
|j5 = [0, 0, 0]= 0 1 2 3 ... 6 7 8 9 (len=10)
[0, 0, 1]= 10 11 12 13 ... 16 17 18 19 (len=10)
...
**(略します)**
[9, 8, 9]= 90 91 92 93 ... 96 97 98 99 (len=10)
[9, 9, 0]= 0 1 2 3 ... 6 7 8 9 (len=10)
[9, 9, 1]= 10 11 12 13 ... 16 17 18 19 (len=10)
...
[9, 9, 8]= 80 81 82 83 ... 86 87 88 89 (len=10)
[9, 9, 9]= 90 91 92 93 ... 96 97 98 99 (len=10)
<list>:10*<list>:10*<list>:10*<numpy.ndarray>:10*<numpy.int32>
|k1 = []
<tuple>:0
|k2 = []= 1 2 3 4 ... 7 8 9 0 (len=10)
<tuple>:10*<int>
|k3 = 1 2 3
1 2 3
...
1 2 3
1 2 3
<tuple>:90*<tuple>:3*<int>
|l = {'one': 1, 'two': 2, 'three': 3}
<dict>
|{'key':100} = {'key': 100}
<dict>
お出かけ先で「夜ごと太るボクのために」

もうすこしダイエットをこころがけます。

危険な音を聞いてみました

おでかけ先からこんにちわ、こんばんわ

かえるのクーです。スティックタイプの派生パソコンの性能に辟易しながらも、インターネットをみる時間だけはとれています。

f:id:np2LKoo:20171015143137j:plain

実験はパソコンのスペック上の問題でほぼ休止状況です。来月がんばります。

危険な音って?

最近話題の某国大使館もしくはその住居で「もしかして使われた?」と噂されている「ソニックうぇぽん」についてのお題です。ダークサイドのお話がでてくるかもなので、苦手な方は読み飛ばしください。SAEO対策(アんチ方面)のためいつも以上に読みにくいです。ごめんなさい。
10/12にYoutubeでAPが入手したとされる5秒間の音の断片が公開されました。聞かれた方もいるかもしれません。マッドサイエンちストを目指すボクはこういうのにも「とても」興味をもってしまいます。

f:id:np2LKoo:20171014145500p:plain

By AP通信

何度も聞きましたが、別にどうってことのない音です。(人によってはいやな音かもしれませんが、ボクは「現代音楽を聴いても頭が痛くならないスキル」を修得済です!)

この手の情報は「情報操作されたもの」であるとみるのが普通だと思いますが、それは横に置いて純粋に「ぷち解析」してみます。
ボク、とっても気になります。

公開音については情報の性質上、リンクは張りません。 あしからずご了承ください。
Google で、"What Americans Heard in Cuba Attacks: The Sound" Youtube で検索すると、放送された内容がでてきます。

放送された音の内容について

44.1KHzサンプリングのステレオ音です。
左右の音はほぼ同じですが、わずかに差異があります。
スマホから再録音したものであれば、「ステレオとしての情報」はほとんど意味がなくなります。(スマホはステレオ再生がちゃんとできないため)

非力なマシンでどこまでできるかわかりませんが、今日のお題としてやってみます。
なお、AP通信の画像ではこのようなきれいな(そして精度が悪そうな)解析でした。

今回の音は録音した音をスマホ!で再生し、記者がマイクで再録音したものをさらにTVで流した音のようなので、かなり原音と違う気がします。原音の解析例は載っていました。

f:id:np2LKoo:20171014145618p:plain


ただし、研究機関が公表したグラフではなく、単なるスマホのソフト画像のようなので、その精度は不明な感じがします

一方、最初に貼った画像の方はそこそこの精度のようにも見えます。

 

とっても元のリソース(音)がほしいのですが、それは望めませんのでこの音で解析してみます。

Librosaでそのままスペクトログラム解析してみました。

f:id:np2LKoo:20171014145727p:plain


7215Hz付近を中心にほぼ、時間的に変動がないのがわかります。輝線が1本のようにみえるところに4から6個の周波数ピーク集中しています。多少強度のゆらぎがある感じです。他には0.6秒、2.0秒、2.2秒... あたりの8000Hzから9000Hzの黒い部分が特徴的です。(これはマイクを固定していないことや、マイク付近の手などの吸音物質の動きによる効果ではないかと考えています。)
2195Hz付近の音は対象音が流れる前からでているので、何らかの別のノイズとおもわれます。

次はフーリエ解析のグラフです。近接した複数の周波数が「なっている」ようなので、対数軸でなくリニア軸にして表示してみました。

f:id:np2LKoo:20171014150111p:plain


放送のグラフほどきれいにはなりませんが、7215Hzを中心に複数周波数があることがわかります。
放送のグラフにはありませんでしたが、13.5KHzから14.5KHzあたりにも明確な音があります。

これ以上の解析はプログラムを組まないと難しそうです。

考察(大胆な発想飛躍)

報道される状況をみると以下の可能性が考えられます。(他の方の考察とほぼ同じだと思います)
・ミリ波またはマイクロ波の指向性の強い電磁波が複数源から意図的に特定箇所へ放出された。
・可聴域を超える強いパワーをもった音源から特定箇所に向けて指向性をもって放出された。
・複数の某国家電製品が、経年変化により凶悪な可聴域を超える「コイル鳴き」や電子ノイズを派生させ、その複合効果で現象をひきおこした。

別の一部報道では可聴域を超える音波が原因とみられることが報道されています。
立場をかえて、蛇に反撃するかえるのつもりで考えてみます。

ボクは大吉凶悪なかえるなのさ(なったつもり)

高い周波数の音波は障害物のある場合に透過伝達が困難なため、住居、または施設に向けた攻撃には適さないと思われます。可能であるとしたら、施設内に特定家電製品に紛れて送り込むのであれば、有効と思われます。
この場合は専門家が測定すれば一発で発生源をつきとめられるので、よい手段には思えません。

ミリ波・マイクロ波であれば通常の住居でしたら通過しますので有効です。
観測されている音響効果は、電磁波による金属や物質の受信作用に伴う共鳴現象の可能性があります。
生物に対して直接作用する例はフレイ効果(マイクロ波聴覚効果)が知られています。

こんなの考えました

以上より、いちばん可能性が高いと勝手に思うのは、
「可聴外周波数を(2次)誘発する変調を行ったマイクロ波兵器を複数個所から使用している。代表的変調周波数は、以下の組み合わせ。
30,018Hz±60Hz
29,808Hz±60Hz
29,633Hz±60Hz
29,405Hz±60Hz
29,262Hz±60Hz
29,093Hz±60Hz
28,951Hz±60Hz
28,758Hz±60Hz

でした。(放送された音は44.1KHzのナイキスト周波数の折り返しノイズであると「想定」しただけです)

これで、マイクロ波と同調(共鳴)し、音響効果をもつ(音がなる)物質がすべて発生源となり、特定ができなくなると想定します。なお、これが正解だとは微塵も思っていませんが、ボクがあく意を持っていればこう設計するかもしれません。いや、ボクがさらに「悪い」をもっていれば、きっと現代音楽的不協和をそのまま変調します!

さらにダークなボクであれば、1次変調に民生用機器では測定困難な複数192KHz以上の周波数を使い、1次効果で発生する複数超音波の2次的効果(20KHz超えのうなりとしての周波数)を生むようにするかもしれません。そうすると、1次変調周波数は238,464Hz, 237,064Hz,235,240Hz..... あたりを使うかもしれません。(もしくは、237KHz±14.4KHz)

考察の理由は以下です

・長期にわたる現象であるが、特定が困難であること(近接していない複数発生源とおもわれる)
・一部生体組織の損傷の可能性の報道がある。(組織損傷できるくらいならミリ波・マイクロ波と思われます。音波には困難です。。超音波が組織破壊をするなら怖くて健康診断が受けられません。)
・可聴領域のアタックであれば、耐えられないので、すぐ退去したり対策したりするが、そうなっていない。
・可聴音が聞こえるのは2次的、3次的な現象によるものと推測してみる。人によっては可聴外でもかんり聞こえる人も「まれに」いる。

どうであれ悲しいことです

なお、人類におかれては、こうした技術を用いたご近所いやがせ装置が「通販」されている現状は(性能はともかくとして)悲しむべき現実です。(こういうのは、検索すると気分が悪くなると思うのでやめておきましょう)

人類のみなさん。もっと「なかよく」やってください。

 

興味があったので、書きましたが、ダークなものはやっぱり苦手です。ダークサイドは月の裏側だけにしておきましょう。

へびさんともなかよくしましょう。そうしましょう。