{"id":3624,"date":"2020-04-28T21:02:51","date_gmt":"2020-04-28T12:02:51","guid":{"rendered":"https:\/\/now0930.pe.kr\/wordpress\/?p=3624"},"modified":"2020-04-28T21:09:32","modified_gmt":"2020-04-28T12:09:32","slug":"tensorflow-2-1-0-compile","status":"publish","type":"post","link":"https:\/\/now0930.pe.kr\/wordpress\/tensorflow-2-1-0-compile\/","title":{"rendered":"tensorflow 2.1.0 compile"},"content":{"rendered":"\n<p class=\"has-drop-cap\">\ub0a8\ub294 \uc2dc\uac04\uc5d0 tensorflow 2.0\uc744 \ucef4\ud30c\uc77c\uc5d0 \ub3c4\uc804\ud588\ub2e4. <s> \ud604\uc2e4\uc740 \uc2e4\ud328\ud558\uc5ec 2.1\ub85c \ubaa9\ud45c \uc7ac\uc124\uc815.<\/s> docker \uc774\ubbf8\uc9c0\ub97c \uc0ac\uc6a9\ud558\uba74 \uc26c\uc6b4\ub370, avx2\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294 CPU\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc120\ud0dd\ud560 \uc218 \uc5c6\ub2e4. \uc9c1\uc811 \ucef4\ud30c\uc77c\ud558\uc9c0 \uc54a\ub294 \ud55c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub2e4. \ucd5c\uadfc \uac1c\ubc1c \uc774\ubbf8\uc9c0\ub97c \ucc3e\uc544\ubcf4\ub2c8 cuda 10.1, python3 \uc774\uc5c8\ub2e4. nvidia-driver\ub294 \uc5ec\ub7ec \ubc84\uc804\uc774 \uc124\uc815 \ub418\uc5c8\ub294\ub370, host pc \ubc84\uc804\uc73c\ub85c \uad6c\ub3d9\ud558\ub098 \ubcf4\ub2e4. bazel \ubc84\uc804\uc740 3.0\uc774\ub2e4.<\/p>\n\n\n\n<p>bazel \ubc84\uc804\uc744 2.1.0\uc5d0 \ub9de\ub294 0.27\ub85c \ubc14\uafe8\ub2e4. compile \ud558\uba74 \uc57d 6\uc2dc\uac04 \uc815\ub3c4 \uac78\ub9b0\ub2e4. \ubb38\uc81c\uac00 \uba87 \uac1c \uc788\uc5c8\ub2e4. \uc804\uc5d0 \ub7a8 12GB\ub85c \ucef4\ud30c\uc77c\uc744 \uc131\uacf5\ud588\ub2e4. \uc9c0\uae08 8GB\ub85c \ud574\ubcf4\ub2c8, 10,000\ubc88 \uc2a4\ud15d\ub118\uc5b4 \ub3d9\uc791\uc744 \uba48\ucd94\uace0 \uc2e4\ud328\ud588\ub2e4. \ub7a8\uc744 \uc0ac\uae30 \uc560\ub9e4\ud558\uc5ec \uc77c\ub2e8 <a href=\"https:\/\/extrememanual.net\/12975\">SWAP\uc744 30GB \ub9cc\ub4e4\uc5b4 \ucef4\ud30c\uc77c\uc5d0 \uc131\uacf5\ud588\ub2e4. \uadf8\ub7f0\ub370 \uc0c1\ub2f9\ud788 \ub290\ub9ac\ub2e4.<\/a> \uacb0\uad6d \ub7a8 8GB\ub97c \uad6c\ub9e4\ud588\ub2e4. \uadf8\ub7f0\ub370\ub3c4 firefox\ub97c \ub744\uc6b0\uace0 \ucef4\ud30c\uc77c\ud558\uba74 \uc5d0\ub7ec\ub09c\ub2e4.<\/p>\n\n\n\n<p>\uba54\ub274\uc5bc\uc740 host\uc5d0 CUDA\ub97c \uc124\uce58\ud560 \ud544\uc694 \uc5c6\ub2e4\uace0 \ud588\ub2e4. nvidia-driver\ub97c 440 \ubc84\uc804\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8 \ud558\uba74 CUDA 10.2\ub97c \uae30\ubcf8 \uc124\uce58\ud55c\ub2e4. \uc774\uac8c \ubb50\uac00 \ubb38\uc81c\ub0d0\uba74 docker gpu <a href=\"https:\/\/www.tensorflow.org\/install\/source\">\uc774\ubbf8\uc9c0\uac00 10.2\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc544<\/a> gpu\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub2e4. \uc77c\ub2e8 nvidia docker\uac00 10.1 \uc774\ubbf8\uc9c0\ub97c \ub744\uc6b0\uba74 cuda 10.0\uc73c\ub85c \ub0b4\ub9b4 \uc218 \uc5c6\ub2e4. \ub4dc\ub77c\uc774\ubc84\ub3c4 \uac19\uc774 \ub0b4\ub824\uc57c \ud558\ub294\ub370, \uc0ac\uc6a9 \uc911\uc774\uc5b4 \uc218\uc815\ud560 \uc218 \uc5c6\ub098\ubcf4\ub2e4. \uc2e4\ud328\ud558\uc5ec cuda 10.1 \uc774\ubbf8\uc9c0\ub97c \uc0ac\uc6a9\ud588\ub2e4. \uadf8\ub7ec\ub098 nvidia-driver-440\uc73c\ub85c cuda 10.1\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub2e4. \uacb0\uad6d host pc \ub4dc\ub77c\uc774\ubc84\ub97c 438\ub85c \ub0b4\ub838\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"790\" height=\"462\" src=\"https:\/\/now0930.pe.kr\/wordpress\/wp-content\/uploads\/2020\/04\/cuda10_2.png\" alt=\"\" class=\"wp-image-3628\" srcset=\"https:\/\/now0930.pe.kr\/wordpress\/wp-content\/uploads\/2020\/04\/cuda10_2.png 790w, https:\/\/now0930.pe.kr\/wordpress\/wp-content\/uploads\/2020\/04\/cuda10_2-300x175.png 300w, https:\/\/now0930.pe.kr\/wordpress\/wp-content\/uploads\/2020\/04\/cuda10_2-768x449.png 768w\" sizes=\"auto, (max-width: 790px) 100vw, 790px\" \/><figcaption>nvidia driver version 440.82\ub294 CUDA 10.2\ub97c \uae30\ubcf8 \uc124\uce58\ud55c\ub2e4.<\/figcaption><\/figure>\n\n\n\n<p>tensorflow 1.12 \ubc84\uc804\uc740 host pc driver 440\uc73c\ub85c \uc798 \uad6c\ub3d9\ud55c\ub2e4. \uc65c 9.0\uc740 \uc2e4\ud589\ud558\ub294\ub370 10.x \ubc84\uc804\uc744 \uc2e4\ud589\ud558\uc9c0 \ubabb\ud558\ub294\uc9c0 \ubaa8\ub974\uaca0\ub2e4.<\/p>\n\n\n\n<p>3\uc77c\uc9f8 \uc774 \ubbf8\uce5c \uc9d3\uc744 \ud558\uace0 \uc788\ub2e4. \ubb58 \uc704\ud574\uc11c \uc778\uc9c0 \ubaa8\ub974\uaca0\ub2e4. \uc9c0\uae08\uae4c\uc9c0 \ubc84\ub9b0 \uc778\uac74\ube44\uc640 \uc804\uae30 \uc694\uae08\uc744 \uc0dd\uac01\ud558\uba74 PC 1\/3\ub300\ub97c \uad6c\uc785\ud588\ub2e4.<\/p>\n\n\n\n<p>\uacb0\uad6d \ub2e4\uc74c \uc870\ud569\uc73c\ub85c \ucef4\ud30c\uc77c\uc5d0 \uc131\uacf5\ud588\ub2e4. <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>ubuntu 18.04<\/li><li>nvidia-driver 435, cuda 10.1<\/li><li>docker image: latest-devel-gpu-py3, cuda 10.1, python 3.<\/li><\/ul>\n\n\n\n<p>\ucef4\ud30c\uc77c \uac70\uc758 \ub9c8\uc9c0\ub9c9 \ub2e8\uacc4\uc5d0 host python \ubc84\uc804 2\uc640 guest python \ubc84\uc804 3 \ud658\uacbd \uc124\uc815\uac12 \ub2e4\ub984\uc73c\ub85c \ucef4\ud30c\uc77c\uc744 \uc2e4\ud328\ud588\ub2e4.  <a href=\"https:\/\/github.com\/tensorflow\/tensorflow\/issues\/35115\">\uc5ec\uae30<\/a>\ub97c \ucc38\uc870\ud558\uc5ec \uac04\ub2e8\ud558\uac8c tensorRT\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\ub3c4\ub85d \uc124\uc815\ud588\ub2e4. \uc5b4\ucc28\ud53c \ub0b4 \uadf8\ub798\ud53d \uce74\ub4dc\ub294 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294\ub2e4. python2 \ubc84\uc804 \uc774\ubbf8\uc9c0\ub85c \ud574\ub3c4 \ub420 \ub4ef \ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ERROR: \/tensorflow_src\/tensorflow\/tensorflow\/python\/keras\/api\/BUILD:129:1: Executing genrule \/\/tensorflow\/python\/keras\/api:keras_python_api_gen_compat_v2 failed (Exit 1)\nTraceback (most recent call last):\n  File \"\/root\/.cache\/bazel\/_bazel_root\/51f904752746bc15a93061eb1cc3b8cc\/execroot\/org_tensorflow\/bazel-out\/host\/bin\/tensorflow\/python\/keras\/api\/create_tensorflow.python_api_2_keras_python_api_gen_compat_v2.runfiles\/org_tensorflow\/tensorflow\/python\/tools\/api\/generator\/create_python_api.py\", line 27, in &lt;module>nvidia.com\/compute\/cuda\/repos\/ubuntu1804\/x86_64  cuda-npp-10-1 10.1.243-1 [54.9 MB]\nGet:9 https:\/\/developer.download.nvidia.com\/compute\/cuda\/repos\/ubuntu1804\/x86_64  cuda-libraries-10-1 10.1.243-1 [2588 B]\nGet:10 https:\/\/developer.download.nvidia.com\/compute\/cuda\/repos\/ubuntu1804\/x86_64  cuda-nvrtc-dev-10-1 10.1.243-1 [8812 B]\n\n    from tensorflow.python.tools.api.generator import doc_srcs\n  File \"\/root\/.cache\/bazel\/_bazel_root\/51f904752746bc15a93061eb1cc3b8cc\/execroot\/org_tensorflow\/bazel-out\/host\/bin\/tensorflow\/python\/keras\/api\/create_tensorflow.python_api_2_keras_python_api_gen_compat_v2.runfiles\/org_tensorflow\/tensorflow\/python\/__init__.py\", line 85, in &lt;module>\n    from tensorflow.python.ops.standard_ops import *\n  File \"\/root\/.cache\/bazel\/_bazel_root\/51f904752746bc15a93061eb1cc3b8cc\/execroot\/org_tensorflow\/bazel-out\/host\/bin\/tensorflow\/python\/keras\/api\/create_tensorflow.python_api_2_keras_python_api_gen_compat_v2.runfiles\/org_tensorflow\/tensorflow\/python\/ops\/standard_ops.py\", line 117, in &lt;module>\n    from tensorflow.python.compiler.tensorrt import trt_convert as trt\n  File \"\/root\/.cache\/bazel\/_bazel_root\/51f904752746bc15a93061eb1cc3b8cc\/execroot\/org_tensorflow\/bazel-out\/host\/bin\/tensorflow\/python\/keras\/api\/create_tensorflow.python_api_2_keras_python_api_gen_compat_v2.runfiles\/org_tensorflow\/tensorflow\/python\/compiler\/tensorrt\/__init__.py\", line 22, in &lt;module>\n    from tensorflow.python.compiler.tensorrt import trt_convert as trt\n  File \"\/root\/.cache\/bazel\/_bazel_root\/51f904752746bc15a93061eb1cc3b8cc\/execroot\/org_tensorflow\/bazel-out\/host\/bin\/tensorflow\/python\/keras\/api\/create_tensorflow.python_api_2_keras_python_api_gen_compat_v2.runfiles\/org_tensorflow\/tensorflow\/python\/compiler\/tensorrt\/trt_convert.py\", line 28, in &lt;module>\n    from tensorflow.compiler.tf2tensorrt import wrap_py_utils\n  File \"\/root\/.cache\/bazel\/_bazel_root\/51f904752746bc15a93061eb1cc3b8cc\/execroot\/org_tensorflow\/bazel-out\/host\/bin\/tensorflow\/python\/keras\/api\/create_tensorflow.python_api_2_keras_python_api_gen_compat_v2.runfiles\/org_tensorflow\/tensorflow\/compiler\/tf2tensorrt\/wrap_py_utils.py\", line 28, in &lt;module>\n    _wrap_py_utils = swig_import_helper()\n  File \"\/root\/.cache\/bazel\/_bazel_root\/51f904752746bc15a93061eb1cc3b8cc\/execroot\/org_tensorflow\/bazel-out\/host\/bin\/tensorflow\/python\/keras\/api\/create_tensorflow.python_api_2_keras_python_api_gen_compat_v2.runfiles\/org_tensorflow\/tensorflow\/compiler\/tf2tensorrt\/wrap_py_utils.py\", line 24, in swig_import_helper\n    _mod = imp.load_module('_wrap_py_utils', fp, pathname, description)\n  File \"\/usr\/lib\/python3.6\/imp.py\", line 243, in load_module\n    return load_dynamic(name, filename, file)\n  File \"\/usr\/lib\/python3.6\/imp.py\", line 343, in load_dynamic\n    return _load(spec)\nImportError: \/root\/.cache\/bazel\/_bazel_root\/51f904752746bc15a93061eb1cc3b8cc\/execroot\/org_tensorflow\/bazel-out\/host\/bin\/tensorflow\/python\/keras\/api\/create_tensorflow.python_api_2_keras_python_api_gen_compat_v2.runfiles\/org_tensorflow\/tensorflow\/compiler\/tf2tensorrt\/_wrap_py_utils.so: undefined symbol: _ZN15stream_executor14StreamExecutor18EnablePeerAccessToEPS0_\n----------------\nNote: The failure of target \/\/tensorflow\/python\/keras\/api:create_tensorflow.python_api_2_keras_python_api_gen_compat_v2 (with exit code 1) may have been caused by the fact that it is a Python 2 program that was built in the host configuration, which uses Python 3. You can change the host configuration (for the entire build) to instead use Python 2 by setting --host_force_python=PY2.\n\nIf this error started occurring in Bazel 0.27 and later, it may be because the Python toolchain now enforces that targets analyzed as PY2 and PY3 run under a Python 2 and Python 3 interpreter, respectively. See https:\/\/github.com\/bazelbuild\/bazel\/issues\/7899 for more information.\n----------------\nTarget \/\/tensorflow\/tools\/pip_package:build_pip_package failed to build\nUse --verbose_failures to see the command lines of failed build steps.\nINFO: Elapsed time: 26069.299s, Critical Path: 545.35s\nINFO: 26668 processes: 26668 local.\nFAILED: Build did NOT complete successfully<\/pre>\n\n\n\n<p>\ub4dc\ub514\uc5b4  2.1 \ucef4\ud30c\uc77c\uc744 \uc131\uacf5\ud588\ub2e4. \ud55c \ubc88 \ucef4\ud30c\uc77c \ub05d\ub0b4\uae30 \uc704\ud574 7\uc2dc\uac04\uc529 \uc37c\ub2e4. \ucd1d 5\ubc88\uc740 \uc2e4\ud328\ud588\uace0 6\ubc88\uc9f8 \uc131\uacf5\ud588\ub2e4. \uc5c5\ub370\uc774\ud2b8 \uc804 \uc81c\ub300\ub85c \uc2e4\ud589\ub428\uc744 \ud655\uc778\ud588\ub2e4. update \ud558\uace0 \uc2e4\ud589\ud558\ub2c8 \ub610 \uc5d0\ub7ec \ub72c\ub2e4. cuda 10.2 \ubb38\uc81c\uc784\uc744  <a href=\"https:\/\/github.com\/tensorflow\/tensorflow\/issues\/37233\">\uc5ec\uae30<\/a>\uc5d0\uc11c \ud655\uc778\ud588\ub2e4. \ub2e4\uc2dc \ubc84\uc804\uc744 \ub0b4\ub838\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">2020-04-28 11:13:07.200201: E tensorflow\/stream_executor\/cuda\/cuda_blas.cc:238] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED\n2020-04-28 11:13:07.202605: E tensorflow\/stream_executor\/cuda\/cuda_blas.cc:238] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED\n2020-04-28 11:13:07.202635: W tensorflow\/stream_executor\/stream.cc:2041] attempting to perform BLAS operation using StreamExecutor without BLAS support\n2020-04-28 11:13:07.202674: W tensorflow\/core\/common_runtime\/base_collective_executor.cc:217] BaseCollectiveExecutor::StartAbort Internal: Blas GEMM launch failed : a.shape=(10000, 4), b.shape=(4, 1024), m=10000, n=1024, k=4\n\t [[{{node dense_1\/MatMul}}]]\nTraceback (most recent call last):\n  File \"200428getSortedValuev3.py\", line 198, in &lt;module>\n    model2.fit(x=fixed_sentence_by_index, y=training_result_asarray, epochs=10000, verbose=2, validation_split=0.3, callbacks=callbacks_list, batch_size=10000, shuffle=True)\n  File \"\/usr\/local\/lib\/python3.6\/dist-packages\/keras\/engine\/training.py\", line 1239, in fit\n    validation_freq=validation_freq)\n  File \"\/usr\/local\/lib\/python3.6\/dist-packages\/keras\/engine\/training_arrays.py\", line 196, in fit_loop\n    outs = fit_function(ins_batch)\n  File \"\/usr\/local\/lib\/python3.6\/dist-packages\/tensorflow_core\/python\/keras\/backend.py\", line 3727, in __call__\n    outputs = self._graph_fn(*converted_inputs)\n  File \"\/usr\/local\/lib\/python3.6\/dist-packages\/tensorflow_core\/python\/eager\/function.py\", line 1551, in __call__\n    return self._call_impl(args, kwargs)\n  File \"\/usr\/local\/lib\/python3.6\/dist-packages\/tensorflow_core\/python\/eager\/function.py\", line 1591, in _call_impl\n    return self._call_flat(args, self.captured_inputs, cancellation_manager)\n  File \"\/usr\/local\/lib\/python3.6\/dist-packages\/tensorflow_core\/python\/eager\/function.py\", line 1692, in _call_flat\n    ctx, args, cancellation_manager=cancellation_manager))\n  File \"\/usr\/local\/lib\/python3.6\/dist-packages\/tensorflow_core\/python\/eager\/function.py\", line 545, in call\n    ctx=ctx)\n  File \"\/usr\/local\/lib\/python3.6\/dist-packages\/tensorflow_core\/python\/eager\/execute.py\", line 67, in quick_execute\n    six.raise_from(core._status_to_exception(e.code, message), None)\n  File \"&lt;string>\", line 3, in raise_from\ntensorflow.python.framework.errors_impl.InternalError:  Blas GEMM launch failed : a.shape=(10000, 4), b.shape=(4, 1024), m=10000, n=1024, k=4\n\t [[node dense_1\/MatMul (defined at \/usr\/local\/lib\/python3.6\/dist-packages\/keras\/backend\/tensorflow_backend.py:3009) ]] [Op:__inference_keras_scratch_graph_1128]\n\nFunction call stack:\nkeras_scratch_graph<\/pre>\n\n\n\n<p>\ubbf8\uad6d \uad6d\ubc29\ubd80\uac00 \ub9ac\ub205\uc2a4\ub85c \ubb34\uae30 \uccb4\uacc4\ub97c \uac1c\ubc1c\ud55c\ub2e4\uace0 \ud55c\ub2e4. \uc624\ud508\uc18c\uc2a4\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 \uc774\ub7f0 \uc800\ub7f0 \ubb38\uc81c\uc810\uc744 \ubaa8\ub450 \uc9c1\uc811 \ud574\uacb0\ud574\uc57c \ud55c\ub2e4. \uc815\ub9d0 \uc5c6\ub294 \uae38\uc744 \ub9cc\ub4e4\uc5b4 \uac04\ub2e4. \uae30\uc5c5\uc774 \uc65c \uc624\ud508\uc18c\uc2a4\ub85c \uc11c\ube44\uc2a4\ud558\uc9c0 \uc54a\ub294\uc9c0 \uc54c \ub9cc\ud558\ub2e4. \uad6c\uae00\uac19\uc740 \ub2a5\ub825\uc788\ub294 \ud68c\uc0ac\uc815\ub3c4 \ub418\uc57c \uc624\ud508\uc18c\uc2a4\ub85c \uc11c\ube44\uc2a4 \ud560 \ub9cc\ud558\ub2e4. \ub204\uac00 \uc624\ud508\uc18c\uc2a4\ub85c \uc11c\ube44\uc2a4 \ud55c\ub2e4\uace0 \ud558\uba74 \ub2a5\ub825\uc790\ub77c \uc778\uc2dd\ud574\uc57c\uaca0\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ub0a8\ub294 \uc2dc\uac04\uc5d0 tensorflow 2.0\uc744 \ucef4\ud30c\uc77c\uc5d0 \ub3c4\uc804\ud588\ub2e4. \ud604\uc2e4\uc740 \uc2e4\ud328\ud558\uc5ec 2.1\ub85c \ubaa9\ud45c \uc7ac\uc124\uc815. docker \uc774\ubbf8\uc9c0\ub97c \uc0ac\uc6a9\ud558\uba74 \uc26c\uc6b4\ub370, avx2\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294 CPU\ub97c \uc0ac\uc6a9\ud558\uc5ec [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3639,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[33],"tags":[557,199,276,555,221,109],"class_list":["post-3624","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tensorflow","tag-bazel","tag-compile","tag-cuda","tag-docker","tag-gpu","tag-tensorflow"],"jetpack_featured_media_url":"https:\/\/now0930.pe.kr\/wordpress\/wp-content\/uploads\/2020\/04\/Image.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/3624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/comments?post=3624"}],"version-history":[{"count":13,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/3624\/revisions"}],"predecessor-version":[{"id":3638,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/3624\/revisions\/3638"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/media\/3639"}],"wp:attachment":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=3624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=3624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=3624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}