[解決済み] torch.clampの列依存境界線
2022-02-16 04:14:31
質問
2次元配列のPyTorchテンソルでnp.clipと似たようなことをしたいです。具体的には、各列を特定の値の範囲(列依存)でクリップしたいと思います。例えば、numpyでは、以下のようなことができます。
x = np.array([-1,10,3])
low = np.array([0,0,1])
high = np.array([2,5,4])
clipped_x = np.clip(x, low, high)
clipped_x == np.array([0,5,3]) # True
torch.clampを見つけたのですが、残念ながら多次元境界をサポートしていません(テンソル全体に対して1つのスカラー値のみ)。私のケースにその関数を拡張する"neat"方法はありますか?
ありがとうございます。
解決方法は?
のようにきちんとしたものではありません。
np.clip
を使用することができます。
torch.max
と
torch.min
:
In [1]: x
Out[1]:
tensor([[0.9752, 0.5587, 0.0972],
[0.9534, 0.2731, 0.6953]])
列ごとの下限と上限の設定
l = torch.tensor([[0.2, 0.3, 0.]])
u = torch.tensor([[0.8, 1., 0.65]])
なお、下限の
l
と上界
u
は1×3のテンソル(単次元を持つ2次元)である。これらの次元は
l
と
u
になります。
ブロードキャスト可能
の形状に
x
.
を使用してクリップすることができます。
min
と
max
:
clipped_x = torch.max(torch.min(x, u), l)
で結果
tensor([[0.8000, 0.5587, 0.0972],
[0.8000, 0.3000, 0.6500]])
関連
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み】pandasでカラムの種類を変更する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み] データ型が理解できない
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です