2020年4月19日日曜日

Mnistのインストール方法いろいろ

導入

手書き文字認識のデータセットは、有名なデータセットです。

いろいろなライブラリから活用できるように整備されているのですが、当時の自分は「ファイルって外部から読み込むんじゃないの」(←今思えば、よくわかるようなわからないような疑問)とか、あるいはネットで調べても読み込み方がいろいろあって、その関係性がわからなかったりして混同しておりました。

 そういう人が他にもいるかもしれないなと思って、情報を整理する目的で書きました。

前提

sklearn、tensorflow、pytorchはインストールされている前提から話を始めます。(自分はAnacondaを使って環境を整えました)

sklearn、tensorflow,pytorchの全てが必須ということではありません。それぞれの場合について説明をするという意味です。

OSはMacOSXを使用しています。

注意

いわゆる手書き文字認識のデータセットですが、似たようなものが2つあります。

一つは、sklearnインストール時に一緒についてくる(標準で備わっている)手書き文字認識用のデータセットです。

二つ目は上記以外の方法で入手したものです。

一つ目のほうは、8×8ピクセルの画像から構成されています。

二つ目のほうは、28×28ピクセルの画像から構成されています。

どちらも「手書き文字認識」とか「Mnist」とかの検索で引っかかってくるし、なんとなく画像の雰囲気も同じ感じなので、いろいろ混同しておりました。

sklearnの標準搭載(8×8サイズのデータ)

データセットの場所

sklearn標準のデータセットは以下の場所にあります。
/(環境によって違う部分)/lib/python3.7/site-packages/sklearn/datasets
自分の場合のディレクトリ構成を参考までに。(Anacondaを使っています)
$ls  /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/sklearn/    //パスで指定された中のファイル・ディレクトリ一覧を表示

__check_build   dummy.py   model_selection
__init__.py   ensemble   multiclass.py
__pycache__   exceptions.py   multioutput.py
_build_utils   experimental   naive_bayes.py
_config.py   externals   neighbors
_distributor_init.py  feature_extraction  neural_network
_isotonic.cpython-37m-darwin.so feature_selection  pipeline.py
base.py    gaussian_process  preprocessing
calibration.py   impute    random_projection.py
cluster    inspection   semi_supervised
compose    isotonic.py   setup.py
conftest.py   kernel_approximation.py  svm
covariance   kernel_ridge.py   tests
cross_decomposition  linear_model   tree
datasets   manifold   utils
decomposition   metrics
discriminant_analysis.py mixture
そしてその中のdatasetsフォルダをみてみると、
$ls /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/sklearn/datasets

__init__.py     california_housing.py
__pycache__     covtype.py
_base.py     data
_california_housing.py    descr
_covtype.py     images
_kddcup99.py     kddcup99.py
_lfw.py      lfw.py
_olivetti_faces.py    olivetti_faces.py
_openml.py     openml.py
_rcv1.py     rcv1.py
_samples_generator.py    samples_generator.py
_species_distributions.py   setup.py
_svmlight_format_fast.cpython-37m-darwin.so species_distributions.py
_svmlight_format_io.py    svmlight_format.py
_twenty_newsgroups.py    tests
base.py      twenty_newsgroups.py
となっています。

ここに手書き文字認識以外にも、データセットが用意されています。

さらに、フォルダを深く入っていきます。
$ ls /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/sklearn/datasets/data
boston_house_prices.csv  diabetes_target.csv.gz  linnerud_exercise.csv
breast_cancer.csv  digits.csv.gz   linnerud_physiological.csv
diabetes_data.csv.gz  iris.csv   wine_data.csv
ここに、sklearnを扱った記事でよく引用されるirisデータセットやboston_house_pricesデータセットなどがあります。

データセットのインポート方法

sklearnの公式ページのコードそのままではありますが。

以下作業はターミナルからpythonを起動して行っています。
>>> from sklearn.datasets import load_digits
>>> import matplotlib.pyplot as plt
>>> digit=load_digits()
>>> digit.data.shape
(1797, 64)      // (8×8=64列の行列として格納されている)

>>> plt.gray()
>>> digit.images[0]
array([[ 0.,  0.,  5., 13.,  9.,  1.,  0.,  0.],
       [ 0.,  0., 13., 15., 10., 15.,  5.,  0.],
       [ 0.,  3., 15.,  2.,  0., 11.,  8.,  0.],
       [ 0.,  4., 12.,  0.,  0.,  8.,  8.,  0.],
       [ 0.,  5.,  8.,  0.,  0.,  9.,  8.,  0.],
       [ 0.,  4., 11.,  0.,  1., 12.,  7.,  0.],
       [ 0.,  2., 14.,  5., 10., 12.,  0.,  0.],
       [ 0.,  0.,  6., 13., 10.,  0.,  0.,  0.]])
>>> plt.matshow(digit.images[0])
>>> plt.show()

そうすると以下のような画面が立ち上がります。



オリジナルのデータをダウンロード(28×28サイズのデータ)

Mnistオジリナルのデータはこちらにあります。 

ただし、ここで入手できるのはそのままでは使用できないバイナリファイルです。

なので、自分でデータを使える形にまで加工しなければいけないところですが、以下でみていくように、Mnistは非常に有名なデータセットなので、いろいろなライブラリにすぐに使えるように整備されているツールがあります。

このバイナリデータを自力で元に戻す方法ももちろん存在はするようですが、そこまでフォローしきれなかったし、そこに時間かけるのもどうかと思ったのでその方法については触れません。

sklearn経由でダウンロード(28×28サイズ)

ネット上の記事をみていると、古い記事では
from sklearn.datasets import fetch_mldata
としている記事もありますが、現在ではアクセスしようとしている先のページが使用できないためエラーになります。

なので現在では以下のようにfetch_openmlを使用するようです。
 (scikit-learn(sklearn)のfetch_mldataのエラーの解決法)

これも、ターミナルから起動してます。
>>> import matplotlib.pyplot as plt   // 上からの流れてすでにインポート済かもしれませんが、一応。まだインポートしてなかった場合はこれもやる。
>>> from sklearn.datasets import fetch_openml
>>> digits = fetch_openml(name='mnist_784', version=1)
>>> digits.data.shape
(70000, 784)
>>> plt.imshow(digits.data[0].reshape(28,28), cmap=plt.cm.gray_r)

>>>>>> plt.show()



tensorflow(28×28サイズ)

tensorflowのチュートリアルから入れる方法。
>>> from tensorflow.examples.tutorials.mnist import input_data
とすればいけるらしいのですが、自分の場合は以下のようなエラーが出てしまいました。

結論からいうと、どうやらtensorflowをインストールする際に、tutorialのフォルダがダウンロードされないことがあるらしいです。

Traceback (most recent call last):
  File "", line 1, in 
ModuleNotFoundError: No module named 'tensorflow.examples.tutorials'
実際のディレクトリの中身をみてみました。
$ls /Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/examples/
__init__.py __pycache__ saved_model
となっていました。

以下のページを参考にしました。

まず、Tensorflowのgithubページへアクセスし、zipファイルをどこでもいいのでダウンロードして解凍します。



tensorflow-masterというフォルダがあるので、そのなかのtensorflow-master\tensorflow\examples\の場所に、tutorialsというフォルダがあります。

このturorialsというフォルダをフォルダごと/Users/hiroshi/opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/examples/の中にコピーします。

 ここまでできれば、
>>> import matplotlib.pyplot as plt   // 上からの流れてすでにインポート済かもしれませんが、一応。まだインポートしてなかった場合はこれもやる。
>>> from tensorflow.examples.tutorials.mnist import input_data
>>> mnist = input_data.read_data_sets("MNIST_data", one_hot=True)
>>> im = mnist.train.images[1]
>>> im = im.reshape(-1, 28)
>>> plt.imshow(im)

>>> plt.show()

とすれば、同様に画像が表示されるはずです。

keras(28×28サイズ)

>>> import matplotlib.pyplot as plt   // 上からの流れてすでにインポート済かもしれませんが、一応。まだインポートしてなかった場合はこれもやる。
>>> import tensorflow as tf
>>> mnist = tf.keras.datasets.mnist
>>> mnist
>>> mnist_data = mnist.load_data()
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
11493376/11490434 [==============================] - 1s 0us/step
>>> type(mnist_data[0])
   //タプルで返ってくる。
>>> len(mnist_data[0])
2
>>> len(mnist_data[0][0])
60000
>>> len(mnist_data[0][0][1])
28
>>> mnist_data[0][0][1].shape
(28, 28)

>>> plt.imshow(mnist_data[0][0][1],cmap=plt.cm.gray_r)

>>> plt.show()
もう画像は載せませんが、うまくいけばまた画像が表示されます。

pytorch(28×28サイズ)

まずこれができないと先へ進めないらしいですが、
>>> from torchvision.datasets import MNIST
次のようにエラーがでてしまった。

torchvisionがないらしい。

自分の場合にはcondaでpytorchを入れる際に、単に
conda install pytorch
しか行っていないからのようでした。

付属物までいれるには以下のようにするらしいです。
conda install pytorch torchvision -c pytorch 
確認を求められるのでyを押します。

 (必要であれば)上記を行った上で、以下のようなコードを実行してみます。
>>> import matplotlib.pyplot as plt   // 上からの流れてすでにインポート済かもしれませんが、一応。まだインポートしてなかった場合はこれもやる。


>>> import torchvision.transforms as transforms
>>> from torch.utils.data import DataLoader
>>> from torchvision.datasets import MNIST
>>> mnist_data = MNIST('~/tmp/mnist', train=True, download=True, transform=transforms.ToTensor())
>>> data_loader = DataLoader(mnist_data,batch_size=4,shuffle=False)
>>> data_iter = iter(data_loader)
>>> images, labels = data_iter.next()
>>> npimg = images[0].numpy()
>>> npimg = npimg.reshape((28, 28))
>>> plt.imshow(npimg, cmap='gray')

>>plt.show()

番外編(はじめてのDeeplearningより)

オライリーから出ている『ゼロから作る Deep Learning』では、この本が提供しているファイルの中で独立して行われています。

具体的には、[『ゼロから作る Deep Learning』で使用されるファイルのgithubページ]でダウンロードしてきたフォルダの中で全て読み進めていきます。(もちろん、予めpythonやnumpyなどは準備しておく必要はありますが。

以下手順。

まず、上記で述べたGithubページからフォルダをダウンロードなりクローンしてきます。

ここでは、ダウンロードで行います。

そして解凍します。



そうするとdeep-learning-from-scratch-masterというフォルダができます。

 各章ごとにフォルダ分けされているので、その章のフォルダへ移動して読み進めていく感じになります。

フォルダ自体はch01からありますが、Mnistのデータが使用されるのは第3章なので、ch03に入ることにします。

$ pwd
/Volumes/SONY_64GB/deep-learning-from-scratch-master/ch03
pythonを起動して・・・
>>> import sys,os
>>> sys.path.append(os.pardir)
>>> from dataset.mnist import load_mnist
>>> (x_train,t_train),(x_test,t_test) = load_mnist(flatten=True,normalize=False)
Downloading train-images-idx3-ubyte.gz ... 
Done
Downloading train-labels-idx1-ubyte.gz ... 
Done
Downloading t10k-images-idx3-ubyte.gz ... 
Done
Downloading t10k-labels-idx1-ubyte.gz ... 
Done
Converting train-images-idx3-ubyte.gz to NumPy Array ...
Done
Converting train-labels-idx1-ubyte.gz to NumPy Array ...
Done
Converting t10k-images-idx3-ubyte.gz to NumPy Array ...
Done
Converting t10k-labels-idx1-ubyte.gz to NumPy Array ...
Done
Creating pickle file ...
Done!
>>> print(x_train.shape)
(60000, 784)
>>> print(t_train.shape)
(60000,)
>>> print(x_test.shape)
(10000, 784)
>>> print(t_test.shape)
(10000,)
>>> 
参考にしたページ

Mnistのオリジナルのデータ

sklearn

Tensorflow

Keras

Pytorch

その他

2020年4月13日月曜日

python3.8 on CentOS8


  • Pythonのディレクトリ構造
  • VirturalBoxの使い方
  • CentOS8に触ってみる
といったことを勉強したかったので、CentOS8にPython3.8をインストールをしてみました。

その時の手順を参考になればと思い記事を書きました。

それなりの枚数の画像が挿入されて記事が長くなると思われるので、この記事の要点を先に述べておきたいと思います。

この記事で触れること

  • CentOS8のインストール手順
  • Python3.8のインストール手順(二通り)
  • Python3.8をそれぞれの方法でインストールしたとき、ディレクトリはどうなるか

この記事で触れないこと

  • VirturalBox自体のインストールには触れません。他の記事を引用するに留めます。

自分の環境

  • MacOS 10.15.3 Catalina (今回はVirtualBoxインストール済みのところから話を始めるのであまり関係はないですが。。。)
  • VirtualBox 6.0.18

Python3.8のディレクトリ構造

まず、Python3.8のディレクトリ構造がどうなるか、述べてしまいたいと思います。

コマンドでインストール

  • python3.8の実行ファイル(バイナリファイル)は絶対パスの/usr/binにきます。
  • ライブラリなどは絶対パスの/usr/local/lib/Python3.8/site-packagesにきます。

インストーラーでインストール

CentOSの場合にはインストーラーというものはないようです。

公式サイトへいってもダウンロードできるのはソースコードしかないので、結局はそれを自分でビルドしていくことになるので、上記のコマンドを使う方法と同じことになります。

VirtualBoxのインストール手順

これは調べればたくさん記事が出てくるので、割愛。インストールは済んでいるところから話を始めます。 例えば、
などなど。

CentOS8のイメージファイルのダウンロード

CentOSの公式ページから、まずはCentOS本体のデータをダウンロードします。 この中にあるものであれば、どれも同じなのでどれでもいいのでダウンロードします。






CentOS8のインストール

まずはVirtualBoxを起動します。

下記の画面では、自分が試しに作った別用途のCentOSが表示されてしまっていますが、今回は新規につくるので「新規」をクリックします。



名前の欄は、「あとから起動する時に区別するため」の名前を適当に決めます。ここでは、わかりやすく「CentOS8」としました。

それ以外の設定は特にいじらず、名前の欄を入力したら、「作成」ボタンを押して先へ進みます。



次に、ファイルの場所を決めます。

これは、今から作る仮想マシン自体も、この今作業しているパソコン上に存在することになるわけですが、その場所やそのファイルの名前をどうするのか、ということです。

これも特別な理由がないのであれば、いじらなくていいです。

ファイルサイズは、デフォルトでは8GBになっています。

あとあと、CentOSをインストールする際に、いくつかバリエーションが選べるのですが、「本当に最小限」のものだけをインストールするのであれば、8GBでもいいのですが、そうでない場合には8GBだと足りないので、うまくいくように11GBにします。

最小限、ただ起動するだけだとしても、そのために必要なファイルなどがあるわけです。それらのファイルにも存在できる場所は必要なので、その合計値よりも多くなければいけないということです。

それ以外は、下記画像と同じようになっているか確認し、「作成」ボタンを押します。


そうすると、まずはCentOS8をインストールするための場所が確保できました。


次に、実際にインストールをしていきます。

今作成したCentOS8のところを右クリックして、「起動」→「通常起動」をクリックします。




そうすると、次のような画面になります。


ここで、ダウンロードしてある、CentOS8のイメージファイルを選択します。

選択したら、「Start」を押します。


そうすると、CentOS8のインストール画面が立ち上がります。

いくつか選択肢が表示されていますが、「Install CentOS Linux 8」が選ばれているはずなので、そのまま「Enter」を押します。(まぁなにも押さなくてもカウントダウンが終わればそのまま自動で選択されます。)


言語の設定をします。

操作に少し注意が必要です。

仮想環境の中と外では、別操作になります。仮想環境の画面上をクリックすれば、操作が仮想環境の中に移りますが、そのままでは今度は仮想環境の外の操作ができないので、(仮想環境の中ではなく)普通のPCの操作をしたい場合には「左のCommand」を押します。

日本語を選んで、「続行」を押します。


「続行」を押すと、以下のような画面になります。

画面が途中で見切れてしまっています。これはあとで別途設定することで直すこともできますが、ここでは一旦このまま進めます。

この画面から、
  • 時刻と日付
  • ソフトウェアの選択
  • ネットワークとホスト名
を設定していきます。


日付と時刻を以下のように設定します。

設定したら、左上の「完了」を押します。



「完了」を押すと、元の画面に戻るので、今度は「ソフトウェアの選択」を選択し、以下のように設定。

ここで、「最小限のインストール」を選択してもいいのですが、そうすると本当に最小限しかインストールされずGUIとかもなくCUI上でコマンド操作しなくてはいけなくなります。

なので、慣れないうちはある程度その他のツールも込み込みの「ワークステーション」を選ぶとよいと思います。

勉強して詳しくなってきたら、「サーバー」とか「最小限のインストール」とかでチャレンジしてみるのもいいかもしれません。

冒頭のほうでファイルサイズを8GBに設定しました。

仮に「最小限のインストール」をインストールする場合には、それで足りるのですがその他のツールも含めてインストールしようとするとそれでは足りなくなるので、そのために冒頭では11GBに設定したのでした。

右側の「選択した環境用のその他のソフトウェア」の中も、適当にいくつか選びます。

自分の場合は、以下の画像のように選択しました。




選択したら、まだ左上の「完了」を押して元の画面に戻り、今度は「ネットワークとホスト名」を設定します。

右上のEthernet(enp0s3)のところをクリックしてONにします。そうしたら左上の「完了」を押します。


元の画面に戻りますので、右下の「インストールの開始」をクリックします。


そうすると、インストールが始まります。

それなりの時間がかかるので、その間にrootのパスワードとユーザーの作成をします。


「rootのパスワード」を選択し以下の画面を表示させます。

パスワードを二回入力し、左上の「完了」を押します。

同様に、ユーザーの作成も行います。

ユーザー名とパスワードを入力。

「このユーザーを管理者にする(M)」もチェックをつけておきます。

設定したら左上の「完了」ボタン。


あとはインストールが終わるまでしばらく待ちます。



完了すると以下のような画面になります。そうしたら右下の「再起動」をクリックします。



このまま、何も操作をせずに待っているともう一度インストール画面になってしまうので、一旦イメージファイルを外します。

まずは再起動される前に、以下の画面のような元々のVirtualbox起動時の画面で、今作成中のCentOS8を右クリックして、「閉じる」→「電源オフ」で仮想マシンの電源を落とします。

以下のような画面になっていることを確認。

この画面で「設定」を押します。



設定の画面が開いたら、下記画面のように選択。

そして「仮想ドライブからディスクを除去」を選択。



以下のようになることを確認し、右下の「OK」をクリックし設定画面を閉じます。



VirtualBox起動時の画面へ戻ったら、CentOS8をダブルクリックして起動します。

少し待つと以下のような画面が表示されます。

License informationをクリックします。




「ライセンス契約に同意します。(A)」にチェックを入れて、左上の「完了」を押します。


右下の「設定の完了」を押します。


そうするとユーザー選択画面が表示されます。

作成したユーザーでログインします。



該当ユーザーのパスワードを入力し「ログイン」をクリックします。



無事ログインできれば、以下のような画面が表示されるはずです。


このあと、Pythonをインストールをするにしても、ネットへ繋がってなければなにも始まらないので、ネットが繋がるかどうかも確認しておきます。

これもいろんな方法があるとは思いますが、そのうちの一つ。

Firefoxを起動します。



そして、なんでもいいですが、googleの検索画面が表示できるか確認しましょう。




実は、CentOS8のインストール自体はこれでできているのですが、「画面を最大化」したり、「ホストOSからゲストOSへコピペ」とかいったりということがまだできません。

一通り作業が終わったあとにやるつもりですが、行う順番はどちらが先でもいいので、先に設定したい方はこちらの記事を先に読んでください。

VirtualBoxで画面を最大化する方法、クリップボードを共有する方法


python3.8のインストール

dnfを使用してインストールする場合

CentOS8のトップ画面へ戻り、「端末」を起動します。 これ以降はこの中での作業になります。



以下のコマンドを打ちます。

仮想環境の外から仮想環境の中へコピペもする方法はありますが、今この段階ではできないので、頑張って手打ちします。

$ sudo dnf groupinstall 'development tools’ 
何度か、確認を求めれるので全て「y」を押して進みます。

処理が終わったら、続いて次のコマンドを実行します。
$sudo dnf install bzip2-devel expat-devel gdbm-devel ncurses-devel openssl-devel readline-devel sqlite-devel tk-devel xz-devel zlib-devel wget
$VERSION=3.8.2
$wget https://www.python.org/ftp/python/${VERSION}/Python-${VERSION}.tgz
ここまで完了すると、/home/name(←いまログインしているユーザーの名前)以下に、.tgzのファイルが入ります。
$tar -xf Python-${VERSION}.tgz   // .tgzファイルを解凍
$cd Python-${VERSION}            // 解凍したファイルへ移動
$./configure --enable-optimizations  
$nproc

//自分の場合の出力
1
$sudo make -j 1 (←nprocで出力された数字を入力)
$sudo make altinstall
インストール自体はこれで完了なので、きちんとインストールされているか確認します。これも方法はいくつかあると思いますが、以下のようになれば成功しています。
//一例
$python3.8 —-version
Python3.8.2
あるいは実際に起動してみてもいいでしょう。
$Python3.8
Python3.8.2 (default ,Apr 10 2020, 00:51:32)
[GCC 8.3.1 20190507 (Red Hat 8.3.1-4)] on linux
Type "help","copyright","credits" or "license" for more information.
>>

そして、たびたびくどいようであれですが、「画面の最大化の設定」や「ホストOSとゲストOSでクリップボードの共有」などを設定した場合はこのあとに行っても構いません。

VirtualBoxで画面を最大化する方法、クリップボードを共有する方法


補足(万が一ネットにつながらないという場合)

基本、この手順を最初からなぞっていけば、ネットにも繋がっているとは思いますが、万が一つながらない場合には、以下のコマンドを実行してみましょう。
$nmcli d    // 接続の状態を確認、
                 // enp0s3のところ接続されていない状態になっている可能性がある。
$nmcli  connection up enp0s3   // 接続を確立
$nmcli d //念のため、もう一度状態が変わったか確認

VirtualBoxで画面を最大化する方法、クリップボードを共有する方法

この記事では、
  • VirtualBoxの中の画面を最大化する方法
  • ホストOSとゲストOSでクリップボードを共有する方法について説明します。
画面の最大化については、初期の状態では仮想化のウィンドウ自体を最大化しても、中の画面は大きくなりません。

そのままサイズで、周囲が黒く囲まれ、表示されるべきはずの画面が一部見切れているような状態になります。

これを通常の画面と同じように、スクリーン全体で表示できるように設定します。

また、同様に初期状態では、ホストOSとゲストOSでクリップボードが共有されていません。

どういうことかというと、例えばホストOSでコピーをしてゲストOSへ貼り付けようとしても、クリップボードが共有されていないので、貼り付けできません。

ゲストOSからホストOSへのコピペもしかり。

以上のことに対処するため設定していきます。

環境

  • MacOS 10.15.3 catalina
  • VirtualBox 6.0.18
  • CentOS8

VBoxGuestAdditionsのダウンロード

まず始めに、ここへアクセスしVBoxGuestAdditions をダウンロードします。


VBoxGuestAdditionsのインストール

続いて、該当の仮想マシンを起動し、「端末」を起動します。 

そして以下のコマンドを順次実行します。
$sudo yum update

パスワードを求められるので、入力します。(表示はされませんが入力はされています) 

場合にもよると思いますが、結構数が多いのでそれなりに時間がかかると思われます。

また、しばらくすると確認を求められるのでyを押します。

同様に、次のコマンドを実行します。

$sudo yum groupinstall "Development Tools”

これも、パスワードを入力し、確認が求められたらyを押します。 最後に次のコマンドを実行します。

$sudo yum install kernel-devel elfutils-libelf-devel

ここは確認しか求められないのでyを押します。

 続いて、先ほどダウンロードしたVBoxGuestAdditionsをインストールします。

 「Insert GuestAdditions CD images...」を選択します。



そうすると、仮想マシン上に次のような画面が表示されます。これは「実行」を選択します。





 ログインしているユーザーのパスワードを入力します。 




 そうすると、自動で処理が始まり、最終的には以下のような画面になります。



 Returnを押します。

 画面を最大化するだけであればこれで完了ですが、クリップボードの共有にはもう少し作業をします。

 一旦仮想マシンを終了します。

クリップボードの共有の設定

VirtualBoxの起動画面で、「設定」をクリックします。



 「一般」→「高度」と表示し、「クリップボードの共有」と「ドラッグ&ドロップ」を「双方向」にしておきます。

 設定したら「OK」を押して画面を閉じます。



これで設定は以上になるので、あとは起動して実際に確認すればできるようになっているはずです。