Google Colabratory에서 TensorBoard를 사용하는 방법

소개



이 책을 Google 공동체를 사용하여 공부합니다.
htps //w w. 미안해. 이. jp/보오 ks/9784873118345/

「9장 TensorFlow를 시작한다」로, TensorBoard의 사용법이 나왔습니다만, 이것도 Collabratory상에서 완결시키고 싶다고 생각해 조사했습니다.

구현



이번에는 책의 "9.9 TensorBoard를 사용한 그래프와 훈련 곡선의 시각화"(p.240)
htps : // 기주 b. 코 m / 게론 / 판 d そー ml / b ぉ b / 뭐 r / 09_ u p_ an d_ 룬 g_ ぃ th_ 텐소 rf ぉ w. 이 pyn b
의 "Using TensorBoard"코드를 실행할 수 있도록 잇는 것을 사용합니다.
import tensorflow as tf
from sklearn.datasets import fetch_california_housing
from datetime import datetime
import numpy as np
from sklearn.preprocessing import StandardScaler

housing = fetch_california_housing()
m, n = housing.data.shape
scaler = StandardScaler()
scaled_housing_data = scaler.fit_transform(housing.data)
scaled_housing_data_plus_bias = np.c_[np.ones((m, 1)), scaled_housing_data]

n_epochs = 1000
learning_rate = 0.01

X = tf.placeholder(tf.float32, shape=(None, n + 1), name="X")
y = tf.placeholder(tf.float32, shape=(None, 1), name="y")
theta = tf.Variable(tf.random_uniform([n + 1, 1], -1.0, 1.0, seed=42), name="theta")
y_pred = tf.matmul(X, theta, name="predictions")
error = y_pred - y
mse = tf.reduce_mean(tf.square(error), name="mse")
optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)
training_op = optimizer.minimize(mse)

init = tf.global_variables_initializer()

now = datetime.utcnow().strftime("%Y%m%d%H%M%S")
root_logdir = "tf_logs"
logdir = "{}/run-{}/".format(root_logdir, now)

mse_summary = tf.summary.scalar('MSE', mse)
file_writer = tf.summary.FileWriter(logdir, tf.get_default_graph())

n_epochs = 10
batch_size = 100
n_batches = int(np.ceil(m / batch_size))

def fetch_batch(epoch, batch_index, batch_size):
    np.random.seed(epoch * n_batches + batch_index)  # not shown in the book
    indices = np.random.randint(m, size=batch_size)  # not shown
    X_batch = scaled_housing_data_plus_bias[indices] # not shown
    y_batch = housing.target.reshape(-1, 1)[indices] # not shown
    return X_batch, y_batch

with tf.Session() as sess:
    sess.run(init)

    for epoch in range(n_epochs):
        for batch_index in range(n_batches):
            X_batch, y_batch = fetch_batch(epoch, batch_index, batch_size)
            if batch_index % 10 == 0:
                summary_str = mse_summary.eval(feed_dict={X: X_batch, y: y_batch})
                step = epoch * n_batches + batch_index
                file_writer.add_summary(summary_str, step)
            sess.run(training_op, feed_dict={X: X_batch, y: y_batch})

    best_theta = theta.eval()


file_writer.close()
best_theta

localtunnel 설치


! npm install -g localtunnel

htps : // 기주 b. 코 m / ぉ 칸에 l / ぉ 칸에 l
localtunnel은 서버를 적절한 URL로 게시하는 도구입니다.
그 밖에도 ngrok이라는 서비스도 있습니다.
h tps : / / 응 g로 k. 코m/
어느 쪽이라도 좋다고 생각합니다.

localtunnel 실행


get_ipython().system_raw(
    'tensorboard --logdir {} --host 0.0.0.0 --port 6006 &'
    .format(logdir)
)
get_ipython().system_raw('lt --port 6006 >> url.txt 2>&1 &')

log가 있는 디렉토리를 지정하여 실행합니다.

URL 열기


!cat url.txt

-> your url is: https://****.localtunnel.me

결과





이상입니다.
URL은 Colaboratory 인스턴스가 종료되면 404가 됩니다.

주의점



localtunnel을 사용하면 URL을 알고 있으면 누구나 볼 수 있습니다.
그래서 연습 용도 이외에서는 사용하지 않는 것이 좋을까 생각합니다.
자기 책임으로 시도하십시오.

참고


  • https://qiita.com/stakemura/items/1761be70a06fa8ee853f#%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AE%E5%8F%AF %E8%A6%96%E5%8C%96%E3%83%84%E3%83%BC%E3%83%AB%E3%82%92%E5%8B%95%E3%81%8B%E3 %81%99
  • 좋은 웹페이지 즐겨찾기