« 2020年11月 | トップページ | 2021年1月 »

2020年12月31日 (木)

2020年まとめ

今年も、いろいろありましたね……

何といっても今年は新型コロナ禍の年。コロナで始まり、コロナで終わる。いや未だに、先が見えておりません。だからというわけではありませんが、どちらかというと今年は、私にとってあまりいいことはなかったですね……

このブログにとっては、毎日更新をやめた年でもあります。

とはいえ、やはりまとめができるほどの出来事が満載。今年を振り返ってみます。

【1月】

画像異常検知のデモ機「AIビー玉選別機」を作ってみた: EeePCの軌跡

さて今年は、いきなりRaspberry Pi工作から始まりました。

昨年末に買ったRaspberry Pi 4を使ってますが、結局今年は、Raspberry Pi 3B+をよく使った年でした。

それはともかく、いわゆる画像異常検知にトライしたこの事例。社内でも、使われつつあります。

【2月】

プロジェクター買いました: EeePCの軌跡

2月はせいぜい、これくらいですかねぇ。プロジェクターを買いました。

結論から言うと、ほとんど使ってません。家ではまるで使い道がないですね、これ。

【3月】

このあたりからコロナ禍が猛威を振るい、学校が休みになったり、外出自粛が叫ばれたり、インフラもないのに在宅勤務が推奨されたり……などなど、ストレスマッハな時期がはじまります。

そんな中でも、地道に活動しておりました。

 Raspberry Pi Camera V1.3の「互換カメラ」買ってみた: EeePCの軌跡

ブログが13年目に入る3月9日の記事がこれ。Raspberry Piカメラの互換品を安く手に入れたというお話。

このカメラ自体、今でも使っていて重宝してますが、そんな話題とは裏腹に、しれっとこの記事の最後に「毎日更新をやめます宣言」をしております。

ちょうど12年目のこの日を境に、自身の活動を中心とした記事のみを乗せようと心がけてます。

当ブログをhttps化しました: EeePCの軌跡

さて、このブログもう一つの大きな変化点は「https化」。

あまり意味があるような、ないような変化点ですが、ブラウザによってはかなりうっとおしい警告が出るため、切り替えてみました。

今ではほとんどセキュリティ警告が出なくなっているはずです。

 Ankerのロボット掃除機”Eufy”買ってみた: EeePCの軌跡

こんなものも買いました。

自動掃除機です。2万円以下で、わりと賢い掃除機を入手。週1で2階をせっせと掃除しております。これは良い買い物でした。

おかげさまで、コロナ太りが捗り過ぎて、夏の健康診断に引っかかるというおまけが付いてきましたが。

【4月】

子供の春休みが、終わりません。そんな4月には、こんなものを買ってます。

iPad用トラックパッド・キーボード付きケース買ってMacBookっぽく使えるか試してみた: EeePCの軌跡

結局、ほとんど使ってないのですが、iPad用キーボードです。トラックパッド付。

iPadOS 13がリリースされて、iPadがトラックパッド対応したため購入。

といってもうちにはMacBook Airがあるので、どうしてもそちらにいってしまいます。

使い勝手は、やはりクラムシェル端末には敵いませんね。

小説家になろう 第8回ネット小説大賞 一次選考に2作品が選ばれました: EeePCの軌跡

で、そんなMacBook Airの成果というべきものがこれ。

今年もなんとか1次通過しました。しかも、2作品。相変わらず、2次は全滅しましたが……

来年はもっと、飛躍できないかなぁ。

なお今年はブログ上のネームを、この「小説家になろう」にそろえて「ディープタイピング」としました。Twitterも同じく。ようやく発音可能な名前になりましたね。

特に記事にはしてませんが、この4月頃から会社でZoomをよく使うようになります。今ではすっかりZoom使いです。

【5月】

サーマルセンサー「AMG8833」とRaspberry Piで非接触体温計っぽいものを作ってみた: EeePCの軌跡

コロナ禍ということで、こういうものを作ってみました。

非接触体温計……っぽいもの。頑張れば使えそうなやつです。お値段も5000円ほどと、お手軽なセンサーです。

この記事ですが、このブログの今年のアクセス数トップ記事になっておりますね。

それにしても今年は、久しぶりにRaspberry Piをよく使った年です。

【6月】

6月は、あまり実りのない月でしたね。健康診断に引っかかったことくらいでしょうか?

が、こんな出来事がありました。

Apple ID詐欺……やられかけました……: EeePCの軌跡

Appleっぽい詐欺サイトに誘導されかけました。

特に実害はなさそうでしたが、警戒してすぐにApple IDのパスワードを変更してます。

そういえば周りにも、Facebookを乗っ取られた人がいました。世の中が乱れると、なぜかこういう輩が暗躍するようです。こういう時期、要注意ですね。

【7月】

コロナ禍がややおさまった名古屋 大須へ行って参りました: EeePCの軌跡

すごく久しぶりの大須探訪記です。長男と2人で、行ってきました。

コロナ禍でどうなっていることかと心配でしたが、ここは相変わらずでしたね。

といっても、細かい店がいくつか閉店(または閉店予告)しておりました。大須と言えども、やはり爪痕はあるようです。

長男と共に、大須の雰囲気を満喫した夏でした。

クラムシェル端末風に使えるタッチパッド付iPadキーボードケースを買ってみた: EeePCの軌跡

性懲りもなく、こんなものを購入。

最新版のiPad向けの商品を買ったため、サイズが合いませんが、何とか無理やり使ってレビュー。

使用感は、悪くありませんね。ただし、やはりMacBook Airには敵わず、結局これも使わずじまい。

【8月】

ミラー型ドライブレコーダー購入: EeePCの軌跡

ドライブレコーダーを買いました。

ルームミラーを電子ミラー化 & 後方カメラ付きというもので、今どきの煽り運転対策には最適。

夜でも後方を確認しやすくなりました。これは買いです。

【9月】

Surface Goがようやく実用形態に: EeePCの軌跡

今年はついに、Surfaceを買いました。

やはり、Zoomやらを使っていると、この手の軽くて起動が速い端末が欲しくなります。

スマホ世代には、ピッタリなWindows端末ですね。おすすめです。

ららぽーと東郷へ行ってきました: EeePCの軌跡

一方、うちの近所に馬鹿でかいショッピングモールが誕生です。

50km圏内をカバーする目的で作られたこのショッピングモール、SIMフリーiPhoneが調達できる店が、まさか徒歩圏内にできようとは思ってもいませんでした。

が、私にとってのこのショッピングモール最大のインパクトはヴィレッジヴァンガードが入っていること。

福袋入手は、ここで決まりです。

【10月】

久しぶりにEeePC 1000H-Xを起動してみた: EeePCの軌跡

ふと見つけた32ビットOSの話題につられて、久しぶりにEeePC 1000H-Xを起動してみました。

バッテリーは完全に死んでますが、本体はまだ生きてます。

とはいえ、さすがにもう遅いですね……12年前の、しかも最底辺のPCですからね。

Tensorflow.js + WebGLで顔検出してくれるWebアプリ: EeePCの軌跡

顔検出のWebアプリの紹介です。マスク顔でもこの通り、検出可能。

何気に、私の顔が出ております(ただしマスク付き)。

【11月】

Raspberry Pi + 磁気センサーで ドアの開閉をセンシングしてみた: EeePCの軌跡

ドアセンサー、作ってみました。会社のトイレIoTの要望に応えての工作です。

いかにもRaspberry Piらしい(?)電子工作ですね。

3COINSのBluetoothイヤホン買ってみた: EeePCの軌跡

瞬発的なアクセス数としては、今年一番バズった記事です。

3COINSで買ったBluetoothイヤホン。

1500円という金額にしては、とても使いやすく音質も悪くないです。

もっとも、ノイズキャンセリングがあるわけではないので、外ではそれなりの音質。

おまけに、よく途切れることがあります。室内でも時々、ぶちぶちと切れますね。安定性はいまいち。

でもまあ、1500円ですから、これ。そう思えば妥当かと。

ゲーム&ウォッチ型スーパーマリオ復刻版ゲーム: EeePCの軌跡

ところで、11月はいろいろなものを買った月です。その一つがこれ。スーパーマリオ35周年記念で、ゲーム&ウォッチ型のゲーム機。

ちなみに、スーパーマリオ1の方はクリアしました。

3年ぶりにiPhoneを購入!iPhone 12 グリーンをららぽーと東郷で入手!: EeePCの軌跡

で、今年最高額の買い物は、これ。

iPhone 12です。128GBで、色はグリーン。

これまでiPhone 5c以降、様々なカラバリモデルが出ましたけど、白・黒以外を買ったのはこれが初めてです。

画面サイズも6.1インチと、我が家では最大サイズのiPhone。おかげでとても見やすいです。

【12月】

11月はガジェット購入祭り的な月でしたが、その余波は12月にも残ります。

Amazon Echo Show 5買ってみた: EeePCの軌跡

とうとう買ってしまいました、Amazon Echo show 5。家電リモコンなどはつけてませんが、音楽再生に使ってます。

音声認識は高いですが、Googleに比べると、あまり遊び心がないですね。真面目です。はい。

と、本年のガジェットな買い物はこれで終わるはずだったんですが……

 ドスパラのゲーミングノート「GALLERIA GR1650TGF-T」を購入!: EeePCの軌跡

やっぱり、無理でした。

フィニッシュは、こいつが飾りました。これが今年2番目の買い物(ちなみに3番目はSurface Go)。

ゲーミングノートPCではコスパ最高と謳われたドスパラのGALLERIA GR1650TGF-Tを、メインPCとして購入。

スマホやSurface Goのおかげで起動時間の速さに慣れすぎてしまい、HDDオンリーのデスクトップ機ではやはり使い物にならないことがしばしば。とうとう勢い余って購入。

おかげさまで、すごく快適です。起動も使い勝手もよくなり、机の上も広くなっていいことづくめ。

Ryzenの6コアも、なかなかいいです。

もっと早くこうするべきだったかと。

ただ、その副産物として、Surface Goを使わなくなりましたが……

しかし、これで快適なら、プロセッサ性能の向上ぶりが段違いといわれるM1チップ搭載のMacBookなど手に入れようものなら、どうなることか……次は、Apple Siliconかな?よだれが止まりません。

久しぶりに、PC界隈が活気づいた年ですね。振り返ればiPhoneよりも、こっちの方がインパクト大きいです。

◇◇◇

とまあ、コロナ禍で外出も控えめなこの年でしたが、それでも振り返ると案外、いろいろとありましたね。

個人的には、あまり良い年ではありませんでしたね。ブログにはほとんど書いてませんが、裏ではいろいろトライしては、成果を残せずという事柄が多いです。

うーん、どうしてこうなった……振り返れば、今年はブログ開設以来初めてヴィレッジヴァンガードの福袋を買わなかったからでしょうか?あんなもの(?)にジンクスがあるとは思いたくないのですが……

その反動で、来年はもうちょっと、羽ばたきたいところです。叶うでしょうか、そんな願望。

と、まずは、ヴィレヴァン福袋を買うところからスタートですね。

今年の更新は、これでおしまいとなります。

来年も、よろしくお願いいたします。皆様、よいお年を。

エンスカイ 鬼滅の刃 2021年 カレンダー壁掛け B3サイズ

2020年12月30日 (水)

Amazonを名乗る「あなたのアカウントは停止されました」という詐称メール

突然、こんなものが来て一瞬、ドキッとしました。

Amahack01

年末だっていうのに、なんというタイトル……ですが、どうにも怪しい。

大体、Amazonからのメールなら、私の名前が書かれているはず。ところが「こんにちは」の後にあるのは、メールアドレスのみ。

気になったので、Amazonのサイトに行き、そこからアカウントを確認してみましたが、当然、問題なく入れます。Amazon Prime Videoなどのサービスも、問題なく動いてます。

てことで、ちょっとググってみたら、こんなサイトを発見。

【2020/12/10 6:10】Amazonを騙る詐欺メールに関する注意喚起 - 情報基盤センターからのお知らせ

やっぱり近頃、暗躍しているようですね。どこかのだれかが。

上のサイトのNo.7のデザインと一致しました。やっぱり、詐欺メールなんですね。

で、「確認用アカウント」のところにマウスカーソルを当てると(クリックはしてませんよお)、明らかにAmazonではないアドレスが……

ただ、そのアドレスをググってみると(IPv4のアドレスでした)、所属不明ながら日本、東京のアドレスらしいと出てきましたね。日本国内から発信されたメールなのか、それとも単なる踏み台か……

いずれにせよ、この年末年始、怪しげなメールも飛び交う時期です。ご用心を。

イラスト図解式 この一冊で全部わかるセキュリティの基本

2020年12月27日 (日)

VGG16のファインチューニングコード

このブログでも2016年以降、ディープラーニングネタをいくつか投入しておりますが。

そういえば、最近は基本となりつつある「ファインチューニング」ってやつを紹介してませんね。

てことで、VGG16を用いたファインチューニングのコードを、載せておきますね。

【学習用コード】(vgg16_ft_train.py)


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import cv2
import numpy as np
import tensorflow as tf
import tensorflow.python.platform
import keras
from keras.utils import np_utils
from keras.models import Sequential,Model
from keras.layers import Dense,Dropout,Flatten
from keras.layers import Conv2D,MaxPooling2D,GlobalAveragePooling2D,Input
from keras.preprocessing.image import array_to_img,img_to_array,load_img
from keras import backend as K
from sklearn.model_selection import train_test_split
from keras.models import load_model
from keras.callbacks import ModelCheckpoint
from keras.applications.vgg16 import VGG16

path=os.getcwd()+'/data/'
checkDir=os.getcwd()+'/checkpoints/'
if not os.path.exists(checkDir):
os.mkdir(checkDir)
class_count = 0
folder_list=os.listdir(path)

for folder in folder_list:
class_count = class_count+1

label_filenm = './label.txt'
NUM_CLASSES = class_count
IMAGE_SIZE = 224
batch_size = 64
epochs = 200
count=0
folder_list = sorted(os.listdir(path))

train_image = []
train_label = []
test_image = []
test_label = []
X = []
Y = []
f = open(label_filenm, 'w')
for folder in folder_list:
subfolder = os.path.join(path,folder)
file_list = sorted(os.listdir(subfolder))
filemax = 0
i = 0
for file in file_list:
i = i + 1
img = img_to_array(load_img('./data/' + folder + '/'
+ file,target_size=(224,224)))
X.append(img)
Y.append(count)
label_name = folder + ' ' + str(count) + '\n'
f.write(label_name)
count +=1

X = np.asarray(X)
Y = np.asarray(Y)
X = X.astype('float32')
X = X / 255.0
Y = np_utils.to_categorical(Y, NUM_CLASSES)

train_image, test_image, train_label, test_label = train_test_split(X,Y,test_size=0.10)
f.close()
print(u'画像読み込み終了')

input_tensor = Input(shape=(IMAGE_SIZE, IMAGE_SIZE, 3))

base_model = VGG16(weights='imagenet', include_top=False, input_tensor = input_tensor)

x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(1024, activation='relu')(x)
x = Dropout(0.5)(x)
predictions = Dense(NUM_CLASSES, activation='softmax')(x)
model = Model(inputs=base_model.input,outputs=predictions)

for layer in base_model.layers:
layer.trainable = False

model.compile(loss='categorical_crossentropy',
optimizer=keras.optimizers.Adagrad(lr=0.01, epsilon=None, decay=0.0),
metrics=['accuracy']
)
chkpt = os.path.join(checkDir, 'model_.{epoch:02d}-{val_loss:.2f}.h5')
cp_cb = ModelCheckpoint(filepath = chkpt, monitor='val_loss', verbose=1,
save_best_only=True, mode='auto')

model.fit(train_image, train_label,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(test_image, test_label),
callbacks=[cp_cb],
)
model.summary()
score = model.evaluate(test_image, test_label, verbose=0)

【推論用コード】(vgg16_ft_app.py)


#!/usr/bin/env python
import os
import sys
import numpy as np
import tensorflow as tf
import keras
from keras.utils import np_utils
from keras.layers import Dense,Dropout,Flatten
from keras.layers import Conv2D,MaxPooling2D
from keras.preprocessing.image import array_to_img,img_to_array,load_img
from keras import backend as K
from sklearn.model_selection import train_test_split
from keras.models import load_model
import cv2
import math
from PIL import Image
path=os.getcwd()+'/analysis/'
file_list=os.listdir(path)
i = 0
label_name = []
label_filenm = './label.txt'
f = open(label_filenm,'r')
for line in f:
line = line.rstrip()
l = line.rstrip()
label_name.append(l)
i = i + 1
NUM_CLASSES = i
IMAGE_SIZE = 224
test_image = []
path=os.getcwd()+'/analysis/'
outpath = os.getcwd() + '/visible/'
if not os.path.exists(outpath):
os.mkdir(outpath)
file_list=os.listdir(path)
def Grad_Cam(input_model, x, layer_name):
    X = np.expand_dims(x, axis=0)
X = X.astype('float32')
preprocessed_input = X / 255.0
    predictions = model.predict(preprocessed_input)
class_idx = np.argmax(predictions[0])
class_output = model.output[:, class_idx]
    conv_output = model.get_layer(layer_name).output
grads = K.gradients(class_output, conv_output)[0]
gradient_function = K.function([model.input], [conv_output, grads])
    output, grads_val = gradient_function([preprocessed_input])
output, grads_val = output[0], grads_val[0]
    weights = np.mean(grads_val, axis=(0, 1))
cam = np.dot(output, weights)
    cam = cv2.resize(cam, (224, 224), cv2.INTER_LINEAR)
cam = np.maximum(cam, 0)
cam = cam / cam.max()
    jetcam = cv2.applyColorMap(np.uint8(255 * cam), cv2.COLORMAP_JET)
jetcam = cv2.cvtColor(jetcam, cv2.COLOR_BGR2RGB)
jetcam = (np.float32(jetcam) + x / 2)
    return jetcam
model = load_model('model.h5')
model.summary()
for file in file_list:
img = img_to_array(load_img('./analysis/' + file, target_size=(224,224)))
test_image = np.asarray(img)
test_image = test_image.astype('float32')
test_image = test_image / 255.0
test_image = test_image.reshape((1,) + test_image.shape)
    y_prob = model.predict(test_image) 
pred = y_prob.argmax(axis=-1)
value_pred = max(model.predict(test_image)[0])
    gdst = Grad_Cam(model, img, 'block5_pool')
gcnt_filenm = outpath + 'gradcam_' + label_name[pred[0]] + '_' + file
cv2.imwrite(gcnt_filenm, gdst)

 

    print(u'ファイル : ', file, u'は ', label_name[pred[0]], u'です。 ' , value_pred)

コードの行間が妙に空いてるところがありますが、いくら直してもココログが勝手に空けちゃうんです。

なんかこのブログ、どんどんと使いにくくなって……申し訳ありません、あらかじめ、ご了承願います。

使い方ですが、

【準備】

(1) Windows版Pythonをインストール (おすすめはpython 3.7.9の64ビット版)

    このサイトが便利 : 非公式Pythonダウンロードリンク - Python downloads

   パスを通すオプションがあるので、それをチェックしてインストールしてください。

(2) Windows PowerShellを開く。(以下、コマンドはすべてWindows PowerShellで実行)

(3) pipコマンドで、tensorflow 1.14.0、keras 2.2.4、OpenCV (最新版)、PILLOWを入れておく。

【学習】

(1)「data」フォルダを作り、その中にラベルごとのフォルダを複数作って、画像を入れる

      (inu、neko、……のように、半角英数で名前を付けてください)

(2) 上の学習用コードをテキストエディタなどで張り付けて保存(以下、ファイル名は「vgg16_ft_train.py」)。

(3) コマンドで、「python vgg16_ft_train.py」を実行。

(4) 終了したら、「checkpoints」フォルダ内にある一番最後のファイルを上のフォルダに移動し、「model.h5」と名前を変えておく。

【推論】

(1) 上の推論用コードをテキストエディタなどで張り付けて保存(以下、ファイル名は「vgg16_ft_app.py」)。

(2)  コマンドで「python vgg16_ft_app.py」を実行。

こんな感じの結果が出れば、OK。

Vgg16_01

ちなみに、Grad Camを入れてるので、「visible」フォルダにヒートマップが出力されます。

Vgg16_02

注目部位が赤くなるってやつです。

いつも使うお城のデータセットでやってみたんですが……なんかちょっと妙な感じ。なぜだか、お城そのものよりも周囲に色がついてますね。

それはともかく、一応動きました。

会社では、かなり使ってますね、VGG16。ResNet50だの、InceptionV3だのとより深層のモデルもあるんですが、VGG16ベースの方がなぜか精度、汎用性が高い印象。

最近は、新規ネットワークで学習させるより、既存のモデルをベースにファインチューニングする方が増えましたね。

あ、ところで、モデルを流用して学習させる方法には「転移学習」と「ファインチューニング」という言葉があって、それぞれちょっと意味が異なります。

ものの本によれば、

・転移学習とは、ベースモデル部分をそのまま使い、結合層以降を学習すること。

・ファインチューニングとは、ベースモデル部分の一部も再学習すること。

という意味のようです。

で、ここに載せたコードは、厳密には「転移学習」と呼ぶのがふさわしいみたいなのですが、そういうのも含めてファインチューニングと呼んでいる節があるので、いつの間にか私もまとめてファインチューニングと呼んでますね。

まあ、いずれにせよ、この数年でディープラーニングも随分と簡単、一般化したものだと感じます。様々な分野の製品検査や効率化に、使われ始めてますね。

で、このコードが、うちの新メインPCであるGALLERIAで動いてます。

これを使ってなにか、やらかしたいですねぇ……できれば、Raspberry Piも使って。現在、思案中です。


人気ブロガーからあげ先生のとにかく楽しいAI自作教室

2020年12月26日 (土)

うちのGALLERIAでゲーム系ベンチマークテストを動かしてみた

せっかくのゲーミングPCなんだから、ゲーム系のベンチマークテストでも動かしてみようかと思い立ちました。

まずは、よく店頭などでデモとして用いられているファイナルファンタジーXV ベンチマークをダウンロードし、動作してみた。

Img_4395

それにしても、最近のゲームはどんどんリアル感が増してますね。

Img_4396

ちなみに、設定はこの通り、フルHD解像度の高品質でトライ。

Img_4399

ファイナルファンタジーというわりには、あまりファンタジー感のない画像が続きます。

(いや、最近のファイナルファンタジーって、そういうもののようですけど)

Img_4400

草木一本一本の描画が細かいですね。なお、GeForce1650Tiでも動きはスムーズです。

Img_4401

分かりにくいですが、戦闘シーンです。メカががしゃがしゃと動いてます。

風景はいいんですが、メカの動きがどうにも人為的ですね。まあ、それはともかく。

Img_4403

結果です。普通とでました。

まあ、普通なんでしょう。動作には支障なさそうでしたね。

さて、これだけではつまらないので、もう一つ引っ張り出してきました。

Img_4404

「銀河英雄伝説」体験版です。こいつに入っているベンチマークテストを実行。

えっ!?銀河英雄伝説なんてゲーム、あったっけ?

多くの方は、知るはずもありません。何せこのゲーム、2008年10月発売ですから。

12年前のこのゲームのベンチマークテスト、このブログでも何度か使ってます。

おそらくもっとも最後にやったのは、こちらの記事。

Pentium Dual Core E6300でベンチマーク: EeePCの軌跡

2009年に、メインPCがPentium DualCore E6300だった時のベンチマークテストです。

あの当時はデフォルト設定で4000程度。あれから11年たった今、このPCでどれほどの結果が出るのか?

なお、設定はすべて高品質、最高レベル、あらゆるオプションも追加でやってます。解像度も、このゲームで最高の1024×768。このゲームとしては、超激重使用。

Img_4405

にもかかわらず、ブリュンヒルトがいともあっさりと動きます。テクスチャ品質はもちろん最高レベル。

Img_4406

ゲーム画面はこの通り。まあこれは、12年前のゲームって感じですね。

Img_4407

続々と、艦隊が集結します。

Img_4408

そこにヒューベリオンも参戦。両雄、相撃つ。

Img_4410

にしてもこのゲーム、後方の噴出口の光の描写以外は、今でも通用するグラフィックですね。

Img_4411

で、フィニッシュは、ラインハルト騎乗のブリュンヒルトを中心とする帝国軍の一斉砲撃。

Img_4412

で、出てきた結果はこれ。

かつて、デフォルト設定で4000超えて喜んでおりましたが、今や最高画質で8000越え。

ちなみに、4500以上で快適というのがこのベンチマークテストの指標。十分すぎです。

時代を感じますね。CPUもそうですが、グラフィックチップ性能の向上が格段なようです。

個人的には、ファイナルファンタジーベンチより、過去の経緯がある分、こっちの方が衝撃的でしたね。

さて、次回はこいつを使った機械学習にトライ。コードも公開するつもりです。

ファイナルファンタジーXIV コンプリートパック【新生エオルゼア~漆黒のヴィランズ】【Amazon.co.jp限定】オリジナルPC壁紙 配信 |Win対応|ダウンロード版

2020年12月23日 (水)

HDDの物理破壊サービス

これが名古屋にもあれば……

 HDDの物理破壊サービス「黒歴史最終処分場。」がスタート、1台100円 (取材中に見つけた○○なもの) - AKIBA PC Hotline!

HDDの物理破壊サービスが、「秋葉原最終処分場。」で始まっているそうです。その名も「黒歴史最終処分場。」。

必ずしもHDDに忌まわしい記憶があるというわけではないのですが、葬り去りたい気持ちがにじみ出たナイスなネーミングセンスですね。

使用する機械も、また何とも言えないタフな仕様。日東造機製の「DB-60PRO」という破壊専用機だそうで。あの頑固なHDDを一撃で破壊。ほれぼれしますね。

つい先日、HDDを苦労して破壊した者としては、魅力的なサービス。なお、一回100円だそうで。

黒歴史……というより、秘密にしたい情報が詰まったHDDを処分したい方(で秋葉原に気軽に行ける人)は、ぜひ利用したいサービスですよね。


完全ハードディスク抹消17

2020年12月20日 (日)

GALLERIA GR1650TGF-Tを使って1週間

我が家の新メインPC、GALLERIA GR1650TGF-Tがやってきて1週間ほど経ちましたが。

いろいろと遊んでみたので、少し紹介。

まずは主目的である機械学習環境ですが、VGG16の転移学習・ファインチューニングコードを作って走らせました。

転移学習・ファインチューニングとは何ぞや?という方は、以下のサイトを参照。

GPUを使ってVGG16をFine Tuningして、顔認識AIを作って見た - Qiita

要するに、100万枚以上で鍛えられた学習器を流用して、少ない枚数の画像データでも精度の高い分類器を作ろう、という目的のプログラムコードなわけですが。

会社ではすでに展開済みですが、自宅にはなかったので整備しました、という話。

大体、300枚程度の画像データを用いた転移学習で、1エポック当たり3秒、100エポック流しても5分ほどで終了。これはかなり速い。

……などという、マニアックな話はここまで(?)として、ここからは前回インストールのところで終わっていたマイクロソフト フライトシミュレーター2020のその後の話を。

Flightsim01

まずは残念なお知らせから。

Windows10には認識されたジョイスティック「サイドワインダー」ですが、このソフトでは使えないとの警告が出ました。

ということで、キーボード操作で乗り切ることに。

Flightsim02

メニュー画面です。

左下にトレーニングがあって、あらかじめそこで基本操作と離陸までを訓練しておきます。

あれ?着陸(ランディング)は?ああ、キーボード操作で着陸(ランディング)なんて絶対に無理、てことでパスしました。

Flightsim03

世界地図が出てきますが、もういきなりセントレア(中部国際空港)を選択します。

さっそく名古屋上空を飛んでみようかと。

Flightsim05

いきなり空中から始まりました。機体はセスナっぽいやつ。

レシプロ機のはずですが、ジェットエンジンのようなフィーンという甲高いエンジン音が響きます。

……が、よく聞けばその甲高い音の正体は、このPCのファンの音でした。

で、どうやら着陸するよう促されてますが、セントレアに着陸するつもりなんてさらさらありません。無視してそのまま前進。

Flightsim07

知多半島の海岸線沿いに、名古屋を目指します。

やはり、グラフィックはとてもきれいです。この画像上は快晴で雲が見えませんが、雲があれば本物らしく表現されます。まるで本物の空の上のよう。

Flightsim11

そして、名古屋港上空らしきところを通過。

Flightsim15

そのあたりくらいから、地上が急ににぎやかになってきました。建物が増えると、メモリー使用量も増えます。タスクマネージャーを見れば、16GBギリギリ。

で、よく見れば、遠くにビル群が見えます。

あれは間違いなく名古屋駅周辺のビル群。進路を名駅に取ります。

翼よ、あれが名古屋の灯だ!(昼間だけど。)

などとつぶやきつつ、飛行を続けます。

Flightsim17

ファッ!?

な、なんだ、この建物は……ここには、JRセントラルタワー(ツインタワー)と、JRゲートタワービルがあるはずの場所。ですが、全く見たことがない建物が並んでます。

Flightsim18

ツインタワーっぽい建物を過ぎると、こんな黒い建物に遭遇。こんな建物、あったっけ……

Flightsim21

そこで急旋回し、栄上空付近に到達……したのですが、ここにも見たこともない真っ黒なビルが。

ちなみにこのビル、セントラルパークのすぐ隣にあることから察するに、どうやらテレビ塔のようです。

そう、本来なら東京タワーのパクリのような構造体があるはずの場所。

(なお、東京タワーよりも名古屋・栄のテレビ塔のほうが古いです。設計者も同じのはず。そりゃあ、そっくりなはずです)

どうやらこれ、マップからの自動生成によって作られた建物のようで、実物とは違う建物が生成されたようです。

ああ、なんということか……

Flightsim23

失意のまま、大須上空あたりを旋回していたら、

Flightsim24

高度が落ちすぎて、目の前のよくわからないビルに激突。

ゲーム終了です。

東京付近など、メジャーなところでは手作成の場所があるようです。

まあ、名古屋の扱いなんて、こんなもんです。

Img_0059

さて、気を取り直して、ちょっと別の話題に。

こんなものを買いました。耐震ジェルマット。

Img_0061

水洗いで何度もはがせて、しかも強力な粘着力の両面テープのようなやつですが。

これを何に使うのかといえば

Img_0058

2TBの外付けUSB HDDに張り付けて、

Img_0060

ディスプレイ背面に張り付けました。

べったりついて、はがれません。しかも耐震マットというだけあって、HDDの振動を吸収してくれるせいか、動いているかわからないほど静かです。

HDD内蔵ではないんですが、これで無理やり本体に引っ付けてやりました。

という具合に、さっそく活用されてます。

そういえば先日、このPCでZoom飲み会にも参加しました。カメラは下過ぎてさすがに使い物にならなかったので、Webカメラを付けて乗り切りました。マイク、スピーカーは問題なく使えました。

あれ?それにしても、買い換えたら、今までのメインPCよりも使用頻度が上がったような……

新しもの好きなんです、人間なんて。徐々に頻度は下がることと思われます。

ちなみに、メインPCの起動が速くなったおかげで、Surface Goの使用頻度が下がりました。

元々、起動の遅いメインPCの代わりに、さっと立ち上げたいときのためのPCだったので、新メインPCの起動が速くなれば当然、その役割を失うわけですが……

で、どうしようかと思ってましたが、なぜか妻はSurface Goばかりを使いたがるため、こいつをそのまま妻用にしました。

2020年、我が家のPC環境は、大きく変わりましたね。

iPhone 12を買った年だというのに、PCの方がインパクト大きくて、なんだかiPhoneの方がかすれちゃいました。珍しいですね、こんな年も。

さて……次やいよいよApple Silicon Macか?

最新 Apple MacBook Air Apple M1 Chip (13インチPro, 8GB RAM, 256GB SSD) - ゴールド

2020年12月15日 (火)

自宅にある道具だけでHDDを破壊してみた

GALLERIAからいきなりHDDに話題が移りますが……いや、まったく無関係な話ではないんですが。

元々、GALLERIAに乗り換えた理由というのが、狭すぎる我が家の机環境改善のためだったんですけど、机の上がすっきりしたら、今度はクローゼットの中が気になりまして。

元メインPCもしばらくはしまっておくつもりなので、それの収納場所を作らないといけないという事情もあって、今度はクローゼットの整理に追われることに。

で、その過程で出てきたのがこちら。

Img_0042

80~1TBまで、さまざまなHDDです。

すでに2TBが3台もあるので、この辺りはもういらないかなぁと。ということで、燃えないゴミとして出すことにしました。

ですが、500GB以上のHDDには写真なども入っており、そのまま捨てたくない。

で、最初はネオジム磁石でも近づければデータはすぐに消えるだろうと思っていたのですが、今どきのHDDは磁石を近づけたくらいではデータが消えないらしいです。

なので、気になるなら物理的に破壊するしかない。

なので、我が家にドリルなどがあるので、それで破壊しようかと思ったのですが、これがなかなか貫けない。

かといって、HDDのねじを外そうにも、T6かT8のトルクスドライバーという特殊な先っちょのドライバーが必要なため、自宅にある機材では開けられません。

仕方がない、ドライバー、買うか……

と思っていた矢先、こんな記事に出会いまして。

HDD の分解にトルクスドライバーは必要なし。トルクスネジ | データで診る経営支援 イエスウィゴー 

なんと、トルクスドライバーなしで開けることが可能とのこと。

さっそく、やってみました。が、やってみると、そう甘いものではなかったのですが。

Img_0043

リンク先では、百均のニッパーを使えとありますが、ニッパーでは無理でした。

代わりに、ラジオペンチが大活躍。これでぐりぐり回して

Img_0044

ある程度緩んだところで、指で回します。

Img_0045

何とか取れました。

Oh!これはいけるぜ!

Img_0046

ところが、周辺のねじだけをとっただけでは、HDDは開きません。

大抵は、中央のラベルシールの下に、隠しねじが一つついてます。

こいつが厄介で、へこみの奥に仕込まれているため、ラジオペンチもニッパーも受け付けません。

万事、休すか!?

Img_0047

ところが、一本くらいならこうやって上の天板ごとまわしてしまえばよいわけで、ぐりぐり回してねじ開けてしまいました。

Img_0048

HDDが姿を現します。

Img_0049

こうなれば壊し方は色々。ハンマーで五寸釘を打ち付けるもよし、ドリルで穴をあけるもよし。

私はドライバーの先で傷をつけてみたり、ドリルで穴をあけたりしました。

Img_0050

こんな感じに、穴をあけていきます。

1枚プラッタのHDDなら問題ないのですが、2枚以上ある場合は、1枚目があいたところで勢いよく回りだすため、要注意。

Img_0051

とまあ、簡単にいきそうですが、なかなかそうもいかず、例えばこのSeagate製のディスクは端にこんなでっぱりがあります。

こいつのおかげで、隠しねじ対策の天板ぐりぐり作戦では引っかかって、難航します。

Img_0052

隠しねじが2本あるやつもあって、そういうのはこんな感じに天板を曲げるしかありません。

でもまあ、どうにかこうにかしてディスクをこじ開け、中を破壊することができました。

ですがやっぱりおすすめは、トルクスドライバーを使うこと、でしょうか。かなり大変でした。

MacBook Airをあけるのにも使えるので、そのうちセットを購入するのが吉でしょうか。


Newseego トルクスドライバーセットT3 T4 T5 T6 T7 T8 T10 精密 ヘックスローブ レンチセット いじり止めネジ対応 星型 特殊ドライバー 磁石付き Mac book HDD解体 ナイフ修理工具-7本組

 

 

2020年12月14日 (月)

GALLERIAを自分色に染めてます

せっせと、新メインPCであるGALLERIA GR1650TGF-Tをいじってます。


Img_0053


前回記事から引き続いてやったのは、システムバックアップ。


32GBのUSBメモリーを用意し、これにシステム回復ドライブを作成しました。


要するに、Windowsが起動しなくなった際、バックアップした回復イメージを書き込むために起動するメディアです。


スタートメニューの「Windows システムツール」の中の「システムとセキュリティ」の下にある「コンピューターの状態」をクリック。


Syskai03


すると「回復」というのが出てくるので、これをクリックします。


Syskai04


空のUSBメモリ(16GB以上、32GBが推奨)を挿した状態で、「回復ドライブの作成」を選ぶと、あとはいくつかの操作で回復ドライブを作成し始めます。


Syskai01


あとはしばらく待ちます。


で、このUSBメモリーをバックアップイメージを入れた3.5インチHDDとともに保存しました。


Cudatest01


さて、ディープラーニング実行環境を構築したので、テスト的に走らせてみます。


Cudatest02


御覧の通り、GPU(NVIDIA GeForce)が勢いよく伸びます。メモリーとCUDAの項目で著しい上昇を観測します。


ところでこのPC、AMD RADEONも搭載しているため、タスクマネージャーにはGPUがもう一つ出てきますね。こちらはほぼ0%ですが、GeForceと近いところにいるためか、表示されている温度はほぼ同じ。大体60度くらいまで上がります。


この辺りで、ファンがビュンビュンとうるさかったのですが。


本当にファンが本気を出したのは、次の実験。


Shotcut01


最近、動画編集に「Shotcut」というフリーソフトを使ってます。


フリーながらもかなり高い編集機能があって、会社では重宝してます。Windowsムービーメーカーがサポート切れでなくなってしまったため、うちでもこれを使うようになりました。


で、こいつで2分ほどの動画をエンコードさせてみました。


フルHD動画をほぼそのままの画質でエンコードさせてみたのですが、ほぼリアルタイム時間で変換終了。それはそれで、かなり速いのですが。


6コアのCPU(12スレッド)をすべて使い切った結果、ファンの音が恐ろしいことに。


なんていうんですかね……うちにある除湿器を全開運転させたときのような、あるいは小さめの扇風機を無理やり回したような「フィーン」という騒音が響きます。


おそらく、底面の2つのファンが全開だったんでしょうね。


Img_0057


せっかくのゲーミングノートPCだからということで、VR戦艦大和を堪能しました。


ようやく、砲撃演習のシーンを拝むことができたのですが。


やっぱり、これだけじゃつまらない……


てことで、


Img_0054


発掘されたこいつをつなげてみました。マイクロソフト製ジョイスティック「サイドワインダー」


Windows 98の時代からあるこのデバイスですが、驚いたことに、今でもゲーミングデバイスとして認識してくれました。


Img_0055


てことで、調子に乗って「フライトシミュレーター2020」を購入。


果たして、動いてくれますかどうか……


ところがこのゲーム、なんと124GBほどのファイルをダウンロードし始めて、いつまでたっても始まらず。結局、この日はゲームができませんでした。


また後日、試すことにします。


それにしても、Windows 10がこれほど軽々と動く時代になってしまったんですね。


ハードの影響というよりは、最近の新規インストール版Windows 10は軽いです。たいしたスペックでもないSurface Goでも軽いですからね。


久しぶりに、PCを更新したありがたみを感じました。


Thrustmaster T.Flight Hotas 4 Flight Stick スラストマスター T.フライト ホタス 4 フライト スティック (PS4 / PC 海外輸入北米版周辺機器)


2020年12月13日 (日)

ドスパラのゲーミングノート「GALLERIA GR1650TGF-T」を購入!

今年はコロナ禍ということもあってか、あまり良い年ではありませんでしたねぇ……

それが理由かどうかわかりませんが、11月から立て続けに何か買ってます。

で、今度こそ、おそらく今年最後のガジェット・バイ。のはず。

Img_2404

こんなものを買いました。

Img_2406

中から出てきたのは、15インチのノートPC。

Img_2407

ドスパラのゲーミングノートPC、GALLERIA GR1650TGF-Tです。お値段はなんと74980円。

ゲーミングノートPCでは、最強のコスパと言われてる機種です。

ですが、税込み、送料(3300円)で、なんだかんだと8.6万円ほどにはなりましたが、それでも安いことは安い。

そういえば、ショップ系のノートPCを買うのは初めてかもしれません。

AMD RYZEN 5 4600H(6コア/12スレッド、3.0GHz、ブースト時4.0GHz)、メモリー 8GB、ストレージは512GB SSD(NVMMe)を搭載。

なおこのPC、GeForce GTX 1650Ti(CUDAコア 1024基、メモリー4GB)を内蔵しております。

ローエンドながら、ゲーミングPCとしての最低条件を備えております。

Img_2408

とまあ、個人的にはなかなかの高スペック(?)だと思うのですが、本体はこんなに薄いです。

Img_2409

ベゼルも細めなので、我が家にあるLenovoの15インチノートと比べても一回りほど小さい。

Img_2411

開けてみました。キーボードはちょっと特殊配置です。エンターキーが細いですが、テンキーもついてます。

Img_4391

まさかRADEONとGeForceのシールが並んだPCを買うことになろうとは、思いもよりませんでしたが……

Img_2413

我が家のほかのノートPCとの比較ツーショット。これはSurface Go(10インチ)。

Img_2415

で、MacBook Air(13インチ)。

まあ、15インチですからね、この辺と比べたら当然、大きいです。ですが、厚みではそれほど引けは取りません。

Img_2416

裏面を見てみます。なんだか、スリットだらけですね。

Img_2417

よく見ると、中身が透けて見えます。

Mlun5929

さて、このノートPCのために、周辺機器をそろえました。

左から、2.5インチUSB 2TB HDD、3.5インチHDD USBドライブベイ、8GBメモリー、そしてEeePC以来使っているUSB DVDドライブ。

真ん中と右はわかりますが、左側のHDD系の機器はなぜ?

と、ここでピンときた方はいるかどうかわかりませんが、実はこのノートPCはメインPCとして購入しました。

もういい加減、机の上を占拠するあのバカでかいPCに耐えられなくなって、乗り換えを決心したというわけです。HDDの起動の遅さにもイライラしてましたし。

このところ在宅勤務も時々やってて、そうなると机の上の狭さが問題となり、いろいろと不都合を感じ始めていたんです。

おまけにあのメインPC、Windows 7からのアップグレードのWindows 10であり、無理矢理使い続けた感があります。そろそろ、潮時かと感じました。

もうデスクトップPCにこだわる理由もないし、ノートPCでいいかなぁと。

ただ職業柄、機械学習環境は必須(TensorFlow、Keras等)なので、計算用のGPUが必要。このため、GPUを搭載したゲーミングPCをチョイスすることとなった次第です。

Img_4379

で、このPCですが、16GBのモデルももちろんあるんですけど、それをチョイスするよりも自分でつけたほうが安いという事情もあって、8GBのメモリーだけは別途取り寄せ。ちなみにこれ、4000円ほどです。

Img_4380

というわけで、メモリーをつけるためにさっそく開けます。ねじが微妙なサイズだったため、開けるのにちょっと苦労しました。

Img_4381

まだ起動もしていないのに、中身と対面。

かなりぎゅうぎゅう詰め……でもないですね。わりとあちこちに隙があります。

Img_4382

中央付近の黒フィルムの下に、8GBのメモリーがありました。

Img_4383

で、そのすぐ上のスロットは、この通り空いてます。

Img_4384

そこに、別途購入した8GB PC3200 DDR4のSODIMMをぶち込みます。

Img_4385

せっかく開けたので、いろいろ物色してみます。

これは512GBのNVMe SSDですね。よく見ると、その上のスロットがあいてます。もう1枚、SSD挿せますね、これ。

Img_4386

バッテリーの横あたりには、2.5インチドライブが一つ入りそうなスペースがあいてます。

が、コネクター類は見当たらず。このため、ここにドライブの増設をすることは難しいようです。

Img_4387

左右両側にファンがついてます。こちら側はおそらくCPUかと思われ。

そういえば、いままでは2コアのPCだったのが、いきなり6コアです。しかも、憧れのRYZEN。ちょっと楽しみです。

Img_4388

てことで、ようやく起動。

起動画面には、GALLERIAのマークが。

このマークデザイン、賛否が分かれてますね。私は、可もなく不可もなくといったところ。

Img_4389

それにしてもこのPC、さすがはSSDです。起動時間が短いですね。

Img_4390

とはいえ、最初はセットアップです。Wi-FiのキーやMicrosoftアカウントなどをぶち込んで、しばらく待ちます。

Img_4392

起動直後。

どういうわけか、Surface Go 2についてる壁紙が出てきました。

Img_4393

FireFoxを入れて、さっそくこのブログを見てみます。

こころなしか、ブラウザの起動と表示が速い。

Img_4394

そうそう、最近はやりのテレワーク時代に必須なのが、Webカメラとマイク。

GALLERIA GR1650TGF-Tの場合、画面の下についてます。普通は上なんですが……カメラアプリでアングルを確認してみると、やはり下から見上げたような画像になります。まあ、許容範囲だろうとは思いますけど、あまりWeb会議向きではないですね。

Img_0029

で、それからせっせと必要なアプリケーションをぶち込みます。

ちなみに、CUDAは10.0、cuDNNは7.4、Python 3.7.9にTensorFlowは1.14.0、Kerasは2.2.4を入れました。

Anacondaはインストールしてません。最近、規約が変わって、200人以上の従業員のいる会社は有償版を使えということになったので、会社ではAnacondaを一斉にアンインストールしました。

まあ、自宅では個人なので、Anacondaでもいいんですが、そのあたりは会社と環境を合わせておきたいので。

ちなみにディープラーニング系のプログラムを回してみましたが、速いですね。ベンチマークテスト上では、元々のGTX1050Tiの倍はあるようですが、確かにそれくらい出てます。

と、ここまでセッティングしたところで、システムバックアップを取ります。

Img_0031

使ったのは、メインPC内にあった3.5インチの2TB HDD。3台も入ってたので、せっかくだからこれを使わない手はないと。

さて、このブログ記事もこの新メインPCであるGALLERIAで書いてますけど、まだそのCPU能力を活かすような使い方はしておりませんね。

そうそう、そういえば一つ、うれしいことが。

Img_0038

はい、以前手に入れたVR戦艦大和をやっと動かせる環境を手に入れたんです。

Img_0039

海上から見る、大和の雄姿です。

Img_0040

三連装砲が動いてます。

思ったより、質感が高くて驚きです。

で、役目を終えたデスクトップPCを撤去した結果。

Img_0041

刮目せよ!この机のなんと広いことか!

ブックスタンドを使って、MacBook AirとSurface Goを立てかけるようにしたため、さらに広いです。

もっとも、メインPCからさまざまなUSB機器を引き継いだのと、内蔵SSDでは容量が足りない分を外付けのHDDに頼っているため、このPCは足枷だらけです。まあ、それはおいおい、片づけていこうかと。

さて、このGALLERIA GR1650TGF-Tの感想ですが、噂通り、なかなかのコスパのPCです。

ちょっと電源コネクターの位置が変(たいていは側面ですが、こいつは後ろにあります)だったり、液晶面の剛性感がなくて、開け閉めのたびにたわむ感じがする、USBコネクターが3つしかない、などなど文句などいくらでも付けられますが、許容範囲といったところ。

しばらく、使い込んでみます。まずはCPUパワーを使う何かをさせたいですよね。


東芝 Canvio 2TB USB3.2(Gen1)対応 ポータブルHDD PC/TV対応 バッファローサポート 国内メーカー 故障予測 外付け Mac ブラック HD-TPA2U3-B/N

2020年12月 3日 (木)

Amazon Echo Show 5買ってみた


Surface Go、iPhone 12ときて、今年最後のガジェット・バイ、となるはず。

Img_4366

ブラックフライデーというやつで、こいつはいきなり半額ほどの4980円で売られてました。

たまたまAmazon Musicの音楽をiPhoneで再生してて、ああ、もうちょっと楽な再生環境が欲しいなぁ……などと思っていたところに飛び込んできたこの価格。

沸々と沸き起こる物欲を、いきなり素手で鷲掴みにされた気分です。

Img_4367

中身はこれだけです。まあ、最近の製品はシンプルですね。

なお、iPhoneですらつけていない電源が、こいつには搭載されてます。

Img_4368

しかしまあ……今どき、これですかねぇ。USB-C、せめてmicroUSBあたりが良かったんですが。

Img_4369

それはともかく、ちゃっちゃと立ち上げて

Img_4370

ちゃっちゃとセットアップです。

予め、こちらのPrime情報は入っているため、パスワードを入れたらいきなり動きます。

Img_4376

で、セットアップ直後。随分と、シンプルな画面です。

Img_4375

が、この画面、主張が多い。天気やヘッドラインニュース、その下段には「アレクサ、〇〇して」の例題が頻繁に表示されます。

Img_4373

そういえば、Fire 7搭載のアレクサ機能を除けば、アレクサな端末を買ったのは初めて。

しかも、画面付きです。この画面の効果は、やはり大きい。

Amazon Musicの再生での、歌詞の表示はもちろん

Img_4374

動画も再生できます。スヤリス姫も鮮明です。

ところで、アレクサってわりと音声認識精度が高いと聞きましたが、確かに高いですね。

それだけではなく、対応しているサービスが多い。Amazon系サービスはもちろん、Apple MusicやSpotify等にも対応しているし、dヒッツも(入ってないけど)対応済み。この辺りのサービスを使っている人なら、このAmazon Echoはいいかも。

なお、スピーカーの音質は、まあまあです。めちゃくちゃいいわけではないですが、値段の割には良い方かと。

これで、4980円です。

もっとも、すぐに価格は戻ってしまいますが。

これだからAmazon Prime会員は止められませんねぇ。おかげで気づけば、どんどんとAmazon帝国に取り込まれていきそうです。


Echo Show 5 (エコーショー5) スマートディスプレイ with Alexa、チャコール

« 2020年11月 | トップページ | 2021年1月 »

無料ブログはココログ

スポンサード リンク

ブログ村