<p>KERASTUNER_ORACLE_IP需要IP地址,而不是主机名</p>
<p>这是我在项目中使用的函数,请参见<a href="https://github.com/vlasenkoalexey/gcp_runner/blob/master/entry_point.ipynb" rel="nofollow noreferrer">https://github.com/vlasenkoalexey/gcp_runner/blob/master/entry_point.ipynb</a></p>
<pre class="lang-py prettyprint-override"><code>import os
import json
import socket
def setup_keras_tuner_config():
if 'TF_CONFIG' in os.environ:
try:
tf_config = json.loads(os.environ['TF_CONFIG'])
cluster = tf_config['cluster']
task = tf_config['task']
chief_addr = cluster['chief'][0].split(':')
chief_ip = socket.gethostbyname(chief_addr[0])
chief_port = chief_addr[1]
os.environ['KERASTUNER_ORACLE_IP'] = chief_ip
os.environ['KERASTUNER_ORACLE_PORT'] = chief_port
if task['type'] == 'chief':
os.environ['KERASTUNER_TUNER_ID'] = 'chief'
else:
os.environ['KERASTUNER_TUNER_ID'] = 'tuner{}'.format(task['index'])
print('set following environment arguments:')
print('KERASTUNER_ORACLE_IP: %s' % os.environ['KERASTUNER_ORACLE_IP'])
print('KERASTUNER_ORACLE_PORT: %s' % os.environ['KERASTUNER_ORACLE_PORT'])
print('KERASTUNER_TUNER_ID: %s' % os.environ['KERASTUNER_TUNER_ID'])
except Exception as ex:
print('Error setting up keras tuner config: %s' % str(ex))
</code></pre>
<p>对于TF2.x,TF_CONFIG中的“master”替换为“chief”。您可以传递<a href="https://cloud.google.com/sdk/gcloud/reference/ai-platform/jobs/submit/training# use-chief-in-tf-config" rel="nofollow noreferrer"> use-chief-in-tf-config</a>以更新它。
确认它在谷歌人工智能平台和Kubernetes上工作</p>