問題タブ [scala-breeze]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - DenseVector の json 文字列の unpickle 中の scala.MatchError
Breeze ( https://github.com/scalanlp/breeze ) の DenseVector クラス ( http://www.scalanlp.org/api/breeze/#breeze.linalg.DenseVector )のオブジェクトを pickle 化および unpickle してみました。カスタム ピクラーを追加する必要はありませんでした。pickle 化は成功しましたが、unpickle すると scala.MatchError がスローされました。コードを以下に示します。この問題をデバッグする際のヘルプ/ポインターは大歓迎です! 興味深いことに、問題なく DenseMatrix をピクル/アンピクルすることができました。
出力は次のとおりです。
apache-spark - グループ化されたデータの並列処理をスパークさせる
最初はたくさんのデータを持っていました。しかし、spark-SQL と特に groupBy を使用すると、管理可能なサイズに縮小できます。(単一ノードの RAM に収まります)
すべてのグループ(ノード間で分散) に対して関数を (並行して) 実行するにはどうすればよいですか?
単一グループのデータが単一ノードに収集されるようにするにはどうすればよいですか? たとえば、おそらくlocal matrix
計算には使用したいと思いますが、データの局所性に関するエラーに遭遇したくはありません。
scala - scala 2.10 コンパイラーの scala.language.dynamics バグの回避策
プロジェクト内から参照したいオープン ソース プロジェクト用の SBT ビルドを生成しようとしましたが、コンパイラのバグと思われるものに遭遇しました。
次のコードは、eclipse/scala-ide で期待どおりにコンパイルおよび実行されますが、scala 2.10.6 コンパイラはそれを消化できません。
これが私のbuild.sbtです:
scalaVersion := 2.10.6 を指定すると、次のコンパイル エラーが発生します。
scalaVersion := 2.11.8 では、問題はありませんが、クロスコンパイルする必要があるため、回避策ではありません。
もう 1 つの手がかりは、次のコード行を変更することで問題を隠すことができるということです。
これに:
scalac 2.10.6 で直接コンパイルした場合にも問題が発生します。
回避策として、プロジェクトをリファクタリングして 1 文字より長いフィールド名を使用することができますが、これは私のプロジェクトではないため、回避策として受け入れることができるものには多少の制約があります。また、これは Breeze.linalg プロジェクトであり、単一文字の行列名とベクトル名を許可しないことは深刻な制限となります。
問題を大規模なプロジェクトからこのコード フラグメントに要約するのに数時間かかりました。このオープン ソース ライブラリの scala 2.10 バージョンに制限を課したくありません。このバグは scala 2.11 で修正されたようですので、修正を 2.10 にバックポートしないことが決定されたと思います。
回避策の存在を反映するようにタイトルを変更しました (より長いフィールド名)。
scala-breeze - DenseMatrix から行の範囲を削除する最も効率的な方法は?
DenseMatrix (以下) で行を削除して、別の DenseMatrix ( ) を生成しM+1
たいと考えています。このようなもの:N
DM_a
DM_b
このようなスライスでこれを行うのが最善 (最も効率的)ですか? または、の各列val DM_b = DM_a(0 to M, ::)
にマップする必要がありますか?padRight
DM_a
scala - 行列とスカラー間の操作を簡単に
Adendo: これは scala IDE のバグのようです。なぜなら、コマンド ライン sbt を使用することですべてがスムーズにコンパイルおよび実行されるからです。質問を閉じますが、StackOverflow は許可しません
Breeze で行列をスカラーで合計または乗算することができません
。
2 つのエラーが表示されます。
* 、 :* 、 *: 、 :+ 、 +: を少し異なるエラーで試しても同じことが起こります。
それが DenseMatrix ではなく DenseVector であり、私が :+ を使用している場合、物事は機能します。
scala IDE ワークシートで試してみると、エラーが発生しますが、結果のマトリックスが正しく出力されます。Scala IDE 4.4.1 、そよ風 0.12 、scala 2.11.8 を使用しています
scala - 線形代数とスカラ ブリーズを使用した単純なニューラル ネットワーク
以下は、1 つの入力層、2 つの隠れ層、1 つの出力層を持つニューラル ネットワークの実装です。
このネットワークの出力は次のとおりです。
単一のトレーニング例 101 と出力値 111 を使用しています。指定された予測値1,0,1
は1.9,1.9,1.9
、予測値が 1,1,1 であるべき場合です。
バイアスを使用してシグモイドを計算する方法が間違っていると思います。レイヤーのシグモイド計算の後にバイアス+1値を追加する必要があります。つまり、の { x => sigmoid(x+1) }
代わりに 使用し{ x => 1 + sigmoid(x) }
ますか?
scala - scalaNLP 風を使用して複雑な行列でクロネッカー積を使用する
私はコードを持っていました:
それはまさに私が望んでいた方法で機能しました。問題は、double の代わりに複雑な値が必要だったことです。Breeze.math.Complex をインポートした後、コードを次のように変更しました。
ただし、これによりエラーが発生します。
これはバグですか、それとも何かをするのを忘れていますか?
scala - クラスのインスタンスのスカラ/利回り
ブリーズのディストリビューションに関するドキュメントで見た例に頭を悩ませています。
Rand インスタンスを作成すると、次のことができることが示されます。
これは非常にクールです。メソッドを呼び出すDouble
代わりに取得できる Rand オブジェクトを取得できます。別の例は次のとおりです。Int
samples
問題は、ここで何が起こっているのかということです。Rand[T]
はコレクションではなく、これまでに見た for/yield の例はすべてコレクションで動作します。scala のドキュメントにはあまり言及されていません。ここでの基本的なルールは何ですか? これを他にどのように使用できますか(簡単な回答である必要はありません)