SSブログ
前の10件 | -

Pytorch1.6をJETSON NANOにインストールする [人工知能(ディープラーニング)]

人工知能フレームワークの変化は本当に激しくて、説明したインストール方法があっという間に使えなくなったりします。

 今回、JETSON NANOにPYTORCH1.6をインストールしようとしたところ、いくつかハマりましたので、またインストール方法を説明します。

 日本語のサイトでも説明はあるといえばあるのですが、なんかこう、モヤっとすることもあるので基本は公式サイトのインストール方法がいちばんです。
 ただし、nVIDIAの公式サイト情報も間違っていることもあるので、気をつけましょう…


 では、まずインストールの手順は
https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-6-0-now-available/72048
ここで説明されている手順に従います。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
 JetPack 4.4 production release (L4T R32.4.3)

Python 3.6 - torch-1.6.0-cp36-cp36m-linux_aarch64.whl

The JetPack 4.4 production release (L4T R32.4.3) only supports PyTorch 1.6.0 or newer, due to updates in cuDNN.

This wheel of the PyTorch 1.6.0 final release replaces the previous wheel of PyTorch 1.6.0-rc2.

ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
(1)インストール用ファイルをダウンロードします。
ここのtorch-1.6.0-cp36-cp36m-linux_aarch64.whlをクリックして、インストール用ファイルをダウンロードします。


(2)次にページの下の方にあるpython3.6用のインストール手順に従います。
 ですが、wget .......を実行すると、必要のないpytorch1.4をダウンロードしてしまうので、ここは無視します。
 しかも肝心のインストール手順ではやはりpytorch1.4のインストール手順なので、ここの手順も変更します。

 実際の手順は以下のようになります。

※必要な依存環境のインストール1
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev

※必要な依存環境のインストール2
pip3 install Cython


■このままではPYTORCH1.4をインストールしてしまう手順を変更します→pip3 install numpy torch-1.4.0-cp36-cp36m-linux_aarch64.whl
※わかりやすいように2つの手順に分けます。
※必要な依存環境のインストール3
pip3 install numpy
※pytorch1.6のインストール
pip3 install torch-1.6.0-cp36-cp36m-linux_aarch64.whl

これでpytoch1.6のインストールは完了です。

で、さらにTORCHVISIONのインストールもします。
ここにハマるポイントがあります。

※依存環境のインストール
sudo apt-get install libjpeg-dev zlib1g-dev

公式サイトには 
→ git clone --branch <version> https://github.com/pytorch/vision torchvision
とありますが、pytorch1.6にはバージョン0.7.0のtorchvisionが必要なので、実際には以下のような書き方になります。
git clone --branch v0.7.0 https://github.com/pytorch/vision torchvision
■注意■
ここで--branch v0.7.0をつけないでgitするとインストール時にエラーが発生します。

■ディレクトリを移動
 cd torchvision

※バージョンの指定
 export BUILD_VERSION=0.7.0
※torchvision 0.7.0をインストール
 sudo python setup.py install

これでpytorch1.6のインストールが完了です。
以下のサンプルを実行してエラーがでなければ問題ありません。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
####### torch1.6 sample ########
import torch
print(torch.__version__)
print('CUDA available: ' + str(torch.cuda.is_available()))
print('cuDNN version: ' + str(torch.backends.cudnn.version()))
a = torch.cuda.FloatTensor(2).zero_()
print('Tensor a = ' + str(a))
b = torch.randn(2).cuda()
print('Tensor b = ' + str(b))
c = a + b
print('Tensor c = ' + str(c))

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
####### torchvision 0.7.0 sample ########
import torchvision
print(torchvision.__version__)



torch16.png




nice!(0)  コメント(0) 
共通テーマ:学問

pinebook proにmecabをインストールする [人工知能(ディープラーニング)]

Pinebook ProというマニアックなLINUXパソコン(MANJAROインストール版)も持っているのですが、そもそもCPUにARMを搭載したlinuxパソコンなのでいろいろなところでつまづきます。
インテル系じゃないんです。情報がありません。
ちなみにスーパーコンピュータ「富嶽」はARMでも特殊なものなので、一緒にはできません。
スマホとかで使われている低電力消費CPUです。

で、最近では、Mecabという形態素解析のライブラリをインストールしようとした時に躓きました。
Mecabのサイトで配布されているプログラムの一部が古くて、
configure cannot guess build type
という警告が出て止まるのです。

なので、これをarm系CPUでインストールする場合には、一部のファイルを手動で新しいものに更新してあげないとインストールできません(makeが動きません)。

#mecabのフォルダに移動
cd mecab-0.996

#古いファイルを削除
rm config.guess
#ネットを通じて新しいファイルをダウンロード
wget https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.guess

これでmakeできるようになります。

あとはインストールの手順通りに
./configure
make
make check
sudo make install
でインストールできます。

※このほか辞書のインストールも忘れないでください。
tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz
cd mecab-ipadic-2.7.0-*****(実際にあるフォルダ名にしてください)
./configure --with-charset=utf8
make
sudo make install

※辞書の文字コードはデフォルトがeucなので、utf-8に変更しています。
この部分です。
./configure --with-charset=utf8

もし、makeで文字コードの指定を変えたいときは、make cleanとしてから
./configure --with-charset=utf8
もしくは
./configure --with-charset=sjis
と設定しなおして、makeとsudo make installをすれば大丈夫です。

あとはpythonで使うライブラリをpipでインストールすればOKです。
pip install mecab-python3

辞書のmakeがlibmecab.so.2が見つからないとかで失敗したり、
pythonで import MeCab とした時に
ImportError: libmecab.so.2: cannot open shared object file: No such file or directory
とエラーが出た場合には、

基本的には「.profile (場合によりけりで.bashrc)」に以下のように一文を追加してください。
(※libmecab.so.2は/usr/local/libに存在しているはずです)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

pinebookはいろんなところで躓いて、やっぱりmecabでもつまづきますが大丈夫です。
Pinebook PROで動きます。
Pinephone(mobian)でも使えます。
nice!(0)  コメント(0) 
共通テーマ:学問

PytorchでHSV画像を扱う(RGB⇒HSV変換) [人工知能(ディープラーニング)]

Pytorchで画像を扱う時、輝度と色情報を分離して、色情報だけを抜き出したり、加工したい時があります。

 そもそも一般的なRGBの形式だと、明るさ(輝度情報)と色の情報がRGBの各色情報に含まれているので単純に明るさを変えるとしても、RGBの3つのデータを扱う必要があります。
 明るさの変更くらいならばRGBでも良いのですが…例えば、白黒画像をカラーにするとか、色だけを他の画像から持ってきたい、とかの場合には、RGB形式ではとんでもなく複雑な処理が必要になります。
 ですがHSV形式のように色相(Hue)、彩度(Saturation・Chroma)、明度(Value・Brightness)で構成される画像だと、色の情報(HとS)と、輝度で作られる画像の情報(V)を別々に取り扱うことが出来ます。
 色の情報だけを抜き取って、他の画像に色だけを移し替える事も簡単です。
他にも、白黒画像に色を追加してカラーにしたり、という場合にはRGBではなくて、HSVの方が効率的です。
明るさだけを変える場合には、明度(Value・Brightness)だけを変えれば良くて、色への影響がないのも便利です。

 このHSV画像の取り扱いも、torchvisionとPILを組み合わせることで簡単に出来ます。
RGB→HSV変換、HSV→RGB変換も簡単です。

######----- pytorch、ptorchvision、PILのインポート
import torch
import torchvision
from PIL import Image

####画像の読み込み
a=Image.open('NEKO.JPG')

####RGB形式からHSV形式へ変換
neko2=a.convert('HSV')

####HSVのデータをTensor形式のデータに変換
tneko=torchvision.transforms.ToTensor()(neko2)
#これで、tnekoにHSV形式の3次元のTensorに変換されます。

####輝度を半分にしてみる場合にはこんな感じで直接データをいじることが出来ます。
tneko[2]=tneko[2]/2

####HSV形式のPILイメージに変換
neko3=torchvision.transforms.ToPILImage('HSV')(tneko)

####HSVからRGB形式へ変換
rgbneko=neko3.convert('RGB')


####表示してみる
rgbneko.show()

こんな感じで扱えます。

●注意点としては、torchvisionには、RGB画像を扱う、とても似た機能の命令があります。
※こちらを使うと、HSV形式などでの変換が出来ないので注意してください。

###PILイメージからTensorへ変換(RGB)
ttt=torchvision.transforms.functional.to_tensor(a)

###TensorからPILイメージへ変換(RGBのみ)
aa=torchvision.transforms.functional.to_pil_image(ttt)

opencvを使う人もいますが、(おそらく)この方法が簡単です。

nice!(0)  コメント(0) 
共通テーマ:学問

(PYTORCH)torchvision でのimport時のエラー [人工知能(ディープラーニング)]

もし、torchvisionをimport しようとした時に
ImportError: cannot import name 'PILLOW_VERSION' from 'PIL' (/home/lina/anaconda3/lib/python3.7/site-packages/PIL/__init__.py)
 というエラーが起きた場合、PILLOWのバージョンが7になっていたりしないか確認してください。
 condaでインストールした場合なら
conda list | grep pillow
pip3でインストールした場合なら
pip3 list | grep pillow
 で確認してください。
 torchvisionはバージョンが7以上だと動かないのです

> conda list | grep pillow
pillow 6.2.1 py37h34e0f95_0

こんな感じで(6.2.1※6.2.1が実質上7未満で最も新しいバージョンです)ならば問題ありません。
もし、7以上になっている場合には、
一旦削除して、バージョン6.2.1をインストールしてください。

アンインストールはそれぞれ
conda remove pillow
もしくは
pip3 uninstall pillow
となります。

その上で、
conda install pillow==6.2.1
もしくは
pip3 install pillow==6.2.1
とバージョン指定をしてインストールすれば、torchvisionも動作するはずです。
※場合によっては、一旦torchvisionをアンインストールして、再度インストールし直す必要があります。

これに気が付かずにだいぶなやんだことがありました…

nice!(0)  コメント(0) 
共通テーマ:学問

2019年サハリン・バイクツーリングに行ってきました(1) [サハリン・バイクツーリング]

なんと言いますか、稚内〜コルサコフの航路がなくなった今年ですが、行ってきました。
サハリン・バイクツーリング2019です。
2019-09-14T00:28:47.jpg
きっかけは、これまたなんというか2013年にバイクツーリングでサハリンに来た時に知り合った、セルゲイさんから「また今年遊びに来いよ」と言われたことです。
彼とは、2013年、2015年、2017年、とこれまでにも3回会っていてそれなりに気心も知れていて、今年に入ってからはほぼ毎日whatsappというSMSアプリでメッセージをやりとりしてました。

友人は今年は都合により行けない、ということだったので、はじめての単身ロシア旅行です。
といっても、それなりに回数を行っているサハリンなので、それほどの緊張はありませんでした。

そんなわけで、サハリン行きが決定。
旅行会社には送迎なしの4泊5日プランで申し込みました。
空港までの送り迎えは、セルゲイさんがしてくれるというので、超楽勝でした。

もちろん、サハリン行きの前にすでにやりたいことなどはセルゲイさんと調整済みです。
予定の中には、オフロードバイクでのツーリングも入っていました。

nice!(0)  コメント(0) 
共通テーマ:旅行

2017年サハリン旅行その4(終) [サハリン・バイクツーリング]

セルゲイさんから、言われた
「明日バイクで出掛けられるけど、どうする?」
と言われて、聞き返してしまいました。
「Првда?(え? 本当?)」
セルゲイさんは、楽しそうに笑って
「Да. Правда!(ああ、本当だとも!)」
と答えます。なんというか、まるで、今日全部が伏線で、まんまと彼の作戦にハマった気がしました。
それまでの会話に、今はバイクでは来れないのか?、とか、そういう質問もあって、
「ウラジオストクからは回るのは時間もお金もかかるから。サハリンにバイクだけ送るのも難しいと思う。いつかはまたバイクで来たいと思ってる」とか答えていたんです。
でもねぇ、実は、なんというか、もしかしたらというか、国際免許はまた持って行っていたんです。
ひょっとしたら、こんな展開があるかも、と考えていたんです。

セルゲイさん、わざわざ友達からバイクを借りてくれていたんです。
で、ヘルメットとか装備の問題もあって、一緒に行った友人とは交代になりますが、サハリンの山の空気展望台へと続くルートを駆け上がったり、チェーホフ山(пик Чехова) へ向かう林道を走ったりしました。

2019-08-10T02:18:17.JPG
2019-08-10T02:18:17.JPG
山の空気展望台の近くの頂きに到着。
ロープウェイのしたをくぐったり、結構な砂利道でした。
あと、パラグライダーを楽しむ人もいました。
2019-08-10T02:18:17.JPG

山の空気展望台の見晴らしの良いところでちょっと休憩しながら、セルゲイさんが言います。
「こうして一緒に過ごせて凄く嬉しい」
もうね、なにかの青春映画みたいです。
結構な歳のオジサン二人なんですけどね。
「俺もそうだよ」
なんて、テレずに言えるのは外国語だからなんでしょうね。
もし日本語だったら、言えないですね、多分。

じゃあ、もうちょっと走ろう。もっと難しいところ行っても大丈夫そう?
と聞かれたので、全然大丈夫だよ、と答えたんですが、あとでちょっと後悔しました。
2019-08-10T02:18:17.JPG
最初はそこそこの道路が、どんどん走りにくくなります。
もう、写真を撮ってる余裕なんかありません。
2019-08-10T02:18:17.JPG
途中で、広い場所を見つけて、戻ろうと言うのがやっとでした。
2019-08-10T02:18:17.JPG
こんな感じで、2017年は思いもかけず、ただの観光旅行になるはずが、オフロードバイクツーリングにもなったのでした。
で、あれから2年、実は、そろそろまたサハリンに行くことを計画していたりするのです。


nice!(1)  コメント(0) 
共通テーマ:旅行

2017年サハリン旅行その3 [サハリン・バイクツーリング]

さて、セルゲイさん夫妻の心のこもったおもてなしを受けて、せっかくだからサハリンを案内しましょう、ということで今度は車で40分、メドベージェフ首相の車列とすれ違ったりして、ユジノサハリンスクの東のオホーツコエの海岸に移動です。

2019-08-10T01:29:44.JPG
メドベージェフ首相の車列と遭遇

自家製コンポートや、黒パン、サーラ(豚の脂身の塩漬け)、ロシア製クレープなども広げて休憩です。
ちょっとしたピクニックですね。
2019-08-10T01:29:44.JPG
2019-08-10T01:29:44.JPG
2019-08-10T01:29:44.JPG
オホーツク海を見ながら、サーラとニンニクを載せた黒パン食べていると、不思議な感じでしたね。
本当に些細な「なんか外国語やろうか、ロシア語とかどうかな」ということではじめたロシア語が、バイクでサハリンに来るようになって、そこで知り合った人と友達になって、オホーツク海見ながらロシア料理食べているんです。ほんと、人間の未来ってわかんないもんです。
今のグーグルマップだと、サハリン中心部には夏の画像が使われていますけど、私が見た頃は冬の画像だったんです。え、こんな北におっきな町があって、人が住んでいるのかよ、って思いました。
もうね、最初の頃に、グーグルマップで稚内の北に大きな町を見つけて驚愕した時の自分に言ってやりたいです。
「お前ね、あと数年したらバイクでサハリン行ったり、知り合いが出来て遊びに行くようになるんだぞ。しかもいちばん回数が多い海外の渡航先がサハリンになるんだからな」って。

2019-08-10T01:29:44.JPG
海辺にあったブランコで黄昏れている様子。
見ているのがオホーツク海ってのがねぇ、また凄く奇麗なんです。
ただなんというか、非日常感というか、北に来ているけれど、天気も良くてほどよく暑いし、開放感もあるんですが、自分はなぜここにいるのか、いまいちしっくりしないというか、不思議な感覚がありました。
2019-08-10T01:29:44.jpg
またそんな時に奇麗にオホーツク海に虹がかかったりするんです。

しかも、これで終わりじゃないんです。
ユジノサハリンスクに戻って、行ったのは「山の空気展望台(Горный воздух )」です。
あれ、でも営業時間は20時くらいまでで、山頂に行ってもすぐに戻らないといけないよなぁ、と思っていたら、その日はイベントがある特別な日で深夜までゴンドラが動いている日でした。
2019-08-10T01:29:44.JPG
夕暮れ時に、ゴンドラを乗り継ぎながら山頂へ
2019-08-10T01:29:44.JPG
インスタ映えするオブジェもあって、サハリンの美人さんが写真を撮ってました。

2019-08-10T01:29:44.JPG
中腹ではダンスイベントもあったりして、もりあがってました。

2019-08-10T01:29:44.JPG
帰る時には、ユジノサハリンスクの夜景が輝いてました。
こんな奇麗な景色、普通のツアー観光だと無理だよなぁ、もしオプションで申し込んだら高いよなぁ。
ほんとセルゲイさんには感謝だなぁ、とかいろいろと思っていたんです。
2019-08-10T01:29:44.JPG

そんな時に、
「明日はバイクで出かけられるけど、どうする?」と驚愕の一言がセルゲイさんから出ました。


nice!(0)  コメント(0) 
共通テーマ:旅行

pytorchで画像を読み込んでTENSORにする他 [人工知能(ディープラーニング)]

PYTORCHを使って画像処理をしようとして、最初に躓くのが画像を読み込んでどうやってtensorに変換するかということです。

torchvisionを使うと、簡単に出来てしまいます。

たとえば、画像(hanio.jpg)を読み込んで、tensorに変換してhanihaniに代入する場合はこんな感じです。

import torch
import torchvision
from PIL import Image
img=Image.open('hanio.jpg')
hanihani=torchvision.transforms.functional.to_tensor(img)

これで、hanihaniというtensorに代入が完了です。
ちなみに、ここで hanihani.show() と打ち込んでも、すでにtensorに変換されているので、エラーとなって表示できません。
エラーはこんな感じです:AttributeError: 'Tensor' object has no attribute 'show'

tensorをもう一度PILイメージに変換する場合には、
hani2=torchvision.transforms.functional.to_pil_image(hanihani)
とすればイメージ形式に変換できます。
hani2.show()
という具合に、show()を使っても大丈夫です。

画像を保存したいならば、
hani2.save('newhanio.jpg')
という感じで保存も出来てしまいます。
実はこんな感じで、TORCHVISIONはいろんな変換機能もあって便利なんです。
データセットのライブラリーだけじゃないんです。

●tensor形式のデータhanihaniを画像として保存する場合には、
torchvision.utils.save_image(hanihani,'newconthani.jpg')
これで、tensor形式のデータをそのまま保存できるので便利です。

詳しくはhttps://pytorch.org/docs/stable/torchvision/transforms.htmlの下の方に書かれています。

たとえば、tensorに代入しなくとも、上下反転なんかならば、
(imgはPILイメージかnumpy配列です)
hani2=torchvision.transforms.functional.vflip(img)
これで完了です。

●カラーを白黒のグレースケール画像に変換するなら、
hani2=torchvision.transforms.functional.to_grayscale(img)

●画像を任意の角度で傾けるならば(たとえば45度なら)
hani2=torchvision.transforms.functional.rotate(img,45)

●画像のリサイズ(縦合わせ)ならば
hani2=torchvision.transforms.functional.resize(img,300)
※画像の縦を300の画像としてリサイズ

●画像の一部の切りぬきならば
hani2=torchvision.transforms.functional.crop(img,20,0,300,200)
※画像の縦20,横0を始点として、高さ300,横幅200で画像を切り抜き

●画像の一部を切り抜いてリサイズするなら
hani2=torchvision.transforms.functional.resized_crop(img,20,0,300,200,500)
※画像の縦20,横0を始点として、高さ300,横幅200で画像を切り抜き、縦の長さを500ピクセルとしてリサイズ

●画像のコントラストを変更
hani2=torchvision.transforms.functional.adjust_contrast(img,1.5)
パラメーターは0〜2で。1がオリジナルで、0方向はコントラストが低く、1以上がコントラストが強くなります。

●画像の色相を変更
hani2=torchvision.transforms.functional.adjust_hue(img,0.2)
パラメーターは−0.5 〜 0.5で。


torchvisionは便利です。

ちなみに、この文章もJETSON nanoで作成していたりします。JETSON nano
面白いですよ。
ちなみにこのPYTORCHの記事はJETSONだけでなく普通のPCでも同じです。
windowsでもmacでもLINUXでも同じです。

nice!(1)  コメント(0) 
共通テーマ:学問

(補足)JETSON NANOにPYTORCHをインストール [人工知能(ディープラーニング)]

※2019/07/14にNVIDIAのPYTHORCHに関する公式ページを見たところ
情報が更新されていたので、インストール方法を補足しつつ説明します。
 印象としては、以前よりも簡単になった気もします。
 以下の方法でなんらかのエラーなどが起きた場合には、公式サイトの情報をチェックしてください。
 ※基本的に2019年5月の補足情報と同じです。

2019/07/14時点での公式サイトはこちらです。
https://devtalk.nvidia.com/default/topic/1049071/jetson-nano/pytorch-for-jetson-nano-with-new-torch2trt-converter/

 nVIDIAの公式サイトの情報は、結構な頻度で変わっています。
 私がインストールしたときには、 libjpeg-devの情報は記載されていませんでしたが、現在は記載されています。
 抜粋すると、以下のようになります。

 ●python3.6にpytorch1.1をインストールする
 WGETとPIP3でインストールします。
wget https://nvidia.box.com/shared/static/j2dn48btaxosqp0zremqqm8pjelriyvs.whl -O torch-1.1.0-cp36-cp36m-linux_aarch64.whl
pip3 install numpy torch-1.1.0-cp36-cp36m-linux_aarch64.whl

 ●torch visionをインストール
(1)まず画像等の変換作業に必要な他の関連するライブラリーをインストール
sudo apt-get install libjpeg-dev zlib1g-dev

(2)必要なファイルを、torchvisonというフォルダーを作成してgitでダウンロードする
git clone -b v0.3.0 https://github.com/pytorch/vision torchvision

(3)torchvisionのフォルダーに移動
cd torchvision

(4)Python3で設定ファイルを読み込ませて実行(実質的なインストール作業)する
sudo python3 setup.py install

(※公式サイトでは、「python3」ではなく、ver2.7である「python」と記載されていますが、それだとpython3を使う場合には不整合が起こると思います)




このアクリルケース意外と良いです。ただ、組み立ての説明書はないため、仮組みしてどのアクリル板がどこにはまるのかを調べる必要がありますのでご注意ください。
nice!(0)  コメント(0) 
共通テーマ:学問

2017年サハリン旅行その2 [サハリン・バイクツーリング]

さてサハリンに到着して、早速二日目にはセルゲイさんと宿泊先のガガーリン・ホテルのロビーで再会です。
なんでしょうね、2年ぶりに会うんですが、なんか照れくさい。
小学校の時に親友だった友人と久しぶりに会うような、不思議な恥ずかしさでした。
で、早速セルゲイさんから、「お昼はもう食べた?」と聞かれて、まだ取ってない、ということで
「じゃあうちにおいでよ。一緒にお昼にしよう!」ということで、早速彼のおうちにお呼ばれです。

実はガガーリンホテルからそんなに離れていないところに、セルゲイさんのマンションがあって、訪問すると早速奥さんに出迎えられてお昼をごちそうになります。

2019-06-16T11:50:06.JPG

ロシアで家庭に呼んでもらってごちそうになるなんて、最高のおもてなしです。
ボルシチはもちろん、黒パン、イクラ、ロシア風クレープのブリヌィ、鮭、トマト、キュウリとニンニクのサラダ。しかも、ウォッカは奥さんがシベリアで取ったという松の実を漬け込んだ特製のものが用意されています。
せっかくロシアに来たんだから、ロシア料理をご馳走しましょう、というのがわかってほんと感激です。
しかもどれも素晴らしく美味しい!
みずみずしくて力強い味のサラダ、心安まるボルシチ、風味ある黒パン、地元産の鮭、ああ、これツアーなんかでは味わえない美味しい料理ばかりでした。
2019-06-16T11:50:06.JPG
黒パンにたっぷりのバターを塗ってイクラを載せて食べるとすごく美味しい。
(風味の強い黒パンでないと美味しくないのです。白いパンだとイクラの生臭さが目立って美味しくありません)
 飲んで食べて、おしゃべりして冗談を言って、すごく楽しかったんです。
 そしてまた、デザートにケーキをいただくことになったのですが、なんとチョコレートのプレートはサハリンの形をして、ロシア語でサハリン(Сахалин)と書かれています。
 なにこの素晴らしく粋なおもてなしは!
2019-06-16T11:50:06.jpg
 ほんと楽しいひとときでした!

(酔っ払うといつもより、外国語が通じることがあると感じる人もいると思うんですが、そういう時って難しい単語は使わないし、文章は単文主体でこちらがかなり間違った文章を作っても、相手がその間違いを差し引いて、こちらの伝えたいことを理解しやすくなるからだと考えています)
 
 しかし、これがまだセルゲイさんのおもてなしのはじまりに過ぎなかったことを私と友人はまだ知りませんでした。


【公式】POCKETALK_W (ポケトーク) 翻訳機 74言語 ホワイト

【公式】POCKETALK_W (ポケトーク) 翻訳機 74言語 ホワイト

  • 出版社/メーカー: ソースネクスト
  • メディア: エレクトロニクス


ロシア語の勉強で思った以上に活躍するポケトーク、グーグル翻訳よりも質の良い翻訳をしてくれます。
SNSアプリ経由で外国人とメッセージをやり取りする時にも活躍してくれます。
nice!(0)  コメント(0) 
共通テーマ:旅行
前の10件 | -

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。