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을 알고 있으면 누구나 볼 수 있습니다.
그래서 연습 용도 이외에서는 사용하지 않는 것이 좋을까 생각합니다.
자기 책임으로 시도하십시오.
참고
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
! npm install -g 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 &')
!cat url.txt
Reference
이 문제에 관하여(Google Colabratory에서 TensorBoard를 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kazuyakitahara/items/ef92f93afba5462e9cb3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)