tf.keras.application.Mobilenet
がダウンロードできない
何が起こったか
機械学習プログラムを書こうと思い、試しに以下のコードを書きました。
python
1from tensorflow import keras 2 3if __name__ == "__main__": 4 inputs = keras.layers.Input(shape=(128, 128, 1)) 5 x = keras.layers.Conv2D(filters=3, kernel_size=3, padding="same", 6 activation="relu")(inputs) 7 x = keras.applications.MobileNet(include_top=False, 8 input_shape=(128, 128, 3), 9 weights="imagenet", 10 pooling="max")(x) 11 x = keras.layers.Dense(128, activation="relu")(x) 12 x = keras.layers.Dropout(0.3)(x) 13 pred = keras.layers.Dense(100, activation="softmax")(x) 14 model = keras.Model(inputs=inputs, outputs=pred) 15 model.summary()
mobilenetを持ってきて転移学習をしようと思ったのですがこのコードの時点で以下のエラーが発生しました。
console
12020-11-09 18:21:44.333555: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: c 2annot open shared object file: No such file or directory 32020-11-09 18:21:44.333600: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. 42020-11-09 18:21:45.650596: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open 5 shared object file: No such file or directory 62020-11-09 18:21:45.650656: W tensorflow/stream_executor/cuda/cuda_driver.cc:312] failed call to cuInit: UNKNOWN ERROR (303) 72020-11-09 18:21:45.650686: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (mochi-MizLab): /proc/driver/ 8nvidia/version does not exist 92020-11-09 18:21:45.650988: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use t 10he following CPU instructions in performance-critical operations: AVX2 FMA 11To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 122020-11-09 18:21:45.677190: I tensorflow/core/platform/profile_utils/cpu_utils.cc:104] CPU Frequency: 2400500000 Hz 132020-11-09 18:21:45.680459: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x563fb5dd3270 initialized for platform Host (this does not guarantee that XLA will 14 be used). Devices: 152020-11-09 18:21:45.680515: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version 16Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/mobilenet/mobilenet_1_0_128_tf_no_top.h5 17Traceback (most recent call last): 18 File "/usr/lib/python3.8/urllib/request.py", line 1350, in do_open 19 h.request(req.get_method(), req.selector, req.data, headers, 20 File "/usr/lib/python3.8/http/client.py", line 1255, in request 21 self._send_request(method, url, body, headers, encode_chunked) 22 File "/usr/lib/python3.8/http/client.py", line 1301, in _send_request 23 self.endheaders(body, encode_chunked=encode_chunked) 24 File "/usr/lib/python3.8/http/client.py", line 1250, in endheaders 25 self._send_output(message_body, encode_chunked=encode_chunked) 26 File "/usr/lib/python3.8/http/client.py", line 1010, in _send_output 27 self.send(msg) 28 File "/usr/lib/python3.8/http/client.py", line 950, in send 29 self.connect() 30 File "/usr/lib/python3.8/http/client.py", line 1417, in connect 31 super().connect() 32 File "/usr/lib/python3.8/http/client.py", line 921, in connect [5/129] 33 self.sock = self._create_connection( 34 File "/usr/lib/python3.8/socket.py", line 787, in create_connection 35 for res in getaddrinfo(host, port, 0, SOCK_STREAM): 36 File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo 37 for res in _socket.getaddrinfo(host, port, family, type, proto, flags): 38socket.gaierror: [Errno -2] Name or service not known 39 40During handling of the above exception, another exception occurred: 41 42Traceback (most recent call last): 43 File "/home/mochi/.local/share/virtualenvs/machine-genome-classification-lm-emihK/lib/python3.8/site-packages/tensorflow/python/keras/utils/data_utils.py", line 278, in ge 44t_file 45 urlretrieve(origin, fpath, dl_progress) 46 File "/usr/lib/python3.8/urllib/request.py", line 247, in urlretrieve 47 with contextlib.closing(urlopen(url, data)) as fp: 48 File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen 49 return opener.open(url, data, timeout) 50 File "/usr/lib/python3.8/urllib/request.py", line 525, in open 51 response = self._open(req, data) 52 File "/usr/lib/python3.8/urllib/request.py", line 542, in _open 53 result = self._call_chain(self.handle_open, protocol, protocol + 54 File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain 55 result = func(*args) 56 File "/usr/lib/python3.8/urllib/request.py", line 1393, in https_open 57 return self.do_open(http.client.HTTPSConnection, req, 58 File "/usr/lib/python3.8/urllib/request.py", line 1353, in do_open 59 raise URLError(err) 60urllib.error.URLError: <urlopen error [Errno -2] Name or service not known> 61 62During handling of the above exception, another exception occurred: 63 64Traceback (most recent call last): 65 File "src/machine_learning/tensorflow/foo.py", line 7, in <module> 66 x = keras.applications.MobileNet(include_top=False, 67 File "/home/mochi/.local/share/virtualenvs/machine-genome-classification-lm-emihK/lib/python3.8/site-packages/tensorflow/python/keras/applications/mobilenet.py", line 304, 68 in MobileNet 69 weights_path = data_utils.get_file( 70 File "/home/mochi/.local/share/virtualenvs/machine-genome-classification-lm-emihK/lib/python3.8/site-packages/tensorflow/python/keras/utils/data_utils.py", line 282, in ge 71t_file 72 raise Exception(error_msg.format(origin, e.errno, e.reason)) 73Exception: URL fetch failure on https://storage.googleapis.com/tensorflow/keras-applications/mobilenet/mobilenet_1_0_128_tf_no_top.h5: None -- [Errno -2] Name or service not 74known
試してみたこと
どうやらhttps://storage.googleapis.com/tensorflow/keras-applications/mobilenet/mobilenet_1_0_128_tf_no_top.h5がURLとして正しくないようなのですが、手動でこのURLにアクセスすると以下のXMLレスポンスが得られました。
xml
1 2<?xml version='1.0' encoding='UTF-8'?><Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><Details>No such object: tensorflow/keras-applications/mobilenet/mobilenet_1_0_128_tf_no_top.h5:</Details></Error>
また、weights=None
ではモデルが読み込めたことから、
- モデルの呼び出し方法が違う
keras
内でURLをうまく組み立てられてない
のどちらかではないかと思っているのですが、どのように対処すればよいでしょうか?
ご教授よろしくお願いいたします。
環境
OS: Manjaro Linux x86_64
Python: 3.8.6
tensorflow: 2.3.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。