OpenMythosのサンプルプログラムを動かしました

1.概要 前回、OpenMythosの環境構築まで実現したので、GitHubにあるサンプルプログラム(Usage)を動かしてみました。一部エラーが発生しましたが、結果出力部分なので修正をしました。その内容を記述します。 2.詳細 Usageに記載されているPythonプログラムをopenmythos_usage.pyとして作成します。 $ source ~/mypy/bin/activate (mypy) $ pythoh3 openmythos_usage.py 下記エラーとなります [MLA] Parameters: 1,538,626 [MLA] Logits shape: torch.Size([2, 16, 1000]) [MLA] Generated shape: torch.Size([2, 24]) Traceback (most recent call last):   File "/home/nakasima/openmythos/openmythos_usage.py", line 48, in <module>     rho = torch.linalg.eigvals(A).abs().max().item()           ^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: linalg.eig: The input tensor A must have at least 2 dimensions. コードの下記部分を修正します #rho = torch.linalg.eigvals(A).abs().max().item() rho = A.abs().max().item() $ source ~/mypy/bin/activate (mypy) $ pythoh3 openmythos_usage.py [MLA] Parameters: 1,538,626 [MLA] Logits shape: torch.Size([2, 16, 1000]) [MLA] Generated shape: torch.Size([2, 24]) [MLA] Spectral radius ρ(A) = 0.3679 (mus...

日本語URLの文字化けを可視化する

1.概要
ひとつの事例ですが、下記事例のように日本語を含むURLを見かけることがあります。しかし、このURLをコピーして貼り付けると%を多数含む文字列となり、何が記述されているかわかりません。

ブラウザの表示
https://ja.wikipedia.org/wiki/日本

コピー後の表示
https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC

他の方から連絡を受けたURLが上記事例のようになっていると、URLをクリックする前に、可読可能な文字列に変換したいと思うことがあります。
URL変換するWEBサイトも存在しますが、ローカル環境で変換したいと感じることは多いでしょう。そこで、Ubuntu20.04(bash shell)とWindows10(PowerShell)でURL変換する処理を紹介します。

2.詳細

(1) 操作方法

日本語を含むURLをクリップボードにコピー後、shellを起動すると、URL変換処理が実行され、変換結果をクリップボードに保管します。クリップボードから貼り付けると変換後URLとなります。

(2) Ubuntu 20.04

(a) 必要なモジュールのインストール

sudo apt install xclip nkf

(b) 変換処理のshell作成( urldecode.sh と言う名前で保存 )

#!/bin/bash
urldecode() {
INPUT=$(xclip -selection clipboard -o)
echo "INPUT URL"
echo $INPUT
OUTPUT=$(echo $INPUT | nkf -w --url-input)
echo "OUTPUT URL"
echo $OUTPUT
echo $OUTPUT | xclip -selection clipboard
}
urldecode

(c) 変換処理の実行

https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC

上記URLをクリップボードにコピー

urldecodeの実行

$ sh urldecode.sh
INPUT URL
https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC
OUTPUT URL
https://ja.wikipedia.org/wiki/日本

クリップボードから変換後のURLを貼り付けることができます。


(3) Windows10

(a) Windows10の実行環境

Windows10ではPowerShellを利用します。しかし、操作性が悪いのでバッチファイル呼出を利用します。クリップボードにコピーしたURL変換は、urldecode.batをダブルクリック起動にします。
処理は、urldecode.bat -> urldecode.ps1 -> funcurldecode.ps1 で実行されます。

(b) 変換処理のshell作成( urldecode.bat , urldecode.ps1, funcurldecode.ps1 を作成 )

urldecode.bat 作成

echo off
powershell -ExecutionPolicy RemoteSigned -File %~dp0/urldecode.ps1
timeout 3

urldecode.ps1 作成

$CommandPath = $MyInvocation.MyCommand.Path
$ParentPath  = Split-Path $CommandPath -Parent
. $ParentPath/funcurldecode.ps1
$InputUrl    = get-clipboard
Write-Output "INPUT URL"
Write-Output $InputUrl
$Result      = urldecode $InputUrl
$OutputUrl   = $Result
Write-Output "OUTPUT URL"
Write-Output $OutputUrl
$OutputEncoding=[Console]::OutputEncoding
$OutputUrl | clip

funcurldecode.ps1 作成

function urldecode($InputUrl) {
Add-Type -AssemblyName System.web
$Result = [System.Web.HttpUtility]::UrlDecode($InputUrl,
          [Text.Encoding]::GetEncoding("utf-8"))
Write-Output $Result
}

(c) 変換処理の実行

https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC

上記URLをクリップボードにコピー

urldecode.bat (ダブルクリック)
DOS窓が表示されURL変換されます。

windows10>echo off
INPUT URL
https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC
OUTPUT URL
https://ja.wikipedia.org/wiki/日本

3 秒待っています。続行するには何かキーを押してください ...

クリップボードから変換後のURLを貼り付けることができます。

3.追加

「日本語URLを文字化けさせずにコピペしたい」をネットで見つけたので、簡単な手順があると知りました。日本語を含むURLの参考にさせて頂きました。


参考資料
[外部サイト参照]
ファイルの内容・標準出力をクリップボードへコピーする
Linux:コマンドラインでURLエンコード・デコードする(nkf編)
PowerShell/PowerShellでURLエンコード・URLデコード
PowerShellスクリプトをダブルクリックで実行するには
「%~dp0」を理解すれば、Windowsバッチ中でディレクトリ名やファイル名を自由に使えるから便利
日本語URLを文字化けさせずにコピペしたい

コメント

このブログの人気の投稿

miniPCのBMAXでWindows11のsecure boot設定漏れでトラブル発生

LinuxMint-22.3にWine 11.6をサクッと入れてみました

LinuxMint 21.3にWinBoat導入を試してみました