This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import tensorflow as tf | |
def group_norm(x, G=32, eps=1e-5): | |
# x: input features with shape [N,C,H,W] | |
# G: number of groups for GN | |
N, H, W, C = x.shape | |
gamma = tf.get_variable('gamma', [1, 1, 1, C], initializer=tf.initializers.ones) | |
beta = tf.get_variable('B_beta', [1, 1, 1, C], initializer=tf.initializers.zeros) | |
x = tf.reshape(x, [N, H, W, G, C // G]) | |
mean, var = tf.nn.moments(x, [1, 2, 4], keep_dims=True) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def group_normalization(input_tensor, num_groups, gamma=1.0, beta=0.0, epsilon=1e-5): | |
channels_int = input_tensor.get_shape().as_list()[3] | |
while channels_int % num_groups != 0 and num_groups != 0: | |
num_groups -= 1 | |
batch, height, width, channels = input_tensor.shape | |
input_tensor = tf.reshape(input_tensor, shape=(batch, height, width, channels // num_groups, num_groups)) | |
mean, var = tf.nn.moments(input_tensor, [1, 2, 3], keep_dims=True) | |
input_tensor = (input_tensor - mean) / tf.sqrt(var + epsilon) | |
input_tensor = tf.reshape(input_tensor, [batch, height, width, channels]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import matplotlib.pyplot as plt | |
import tensorflow as tf | |
import numpy as np | |
def _phase_shift(I, r): | |
bsize, a, b, c = I.get_shape().as_list() | |
bsize = tf.shape(I)[0] # Handling Dimension(None) type for undefined batch dim | |
X = tf.reshape(I, (bsize, a, b, r, r)) | |
X = tf.transpose(X, (0, 1, 2, 4, 3)) # bsize, a, b, 1, 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'''This example uses a convolutional stack followed by a recurrent stack | |
and a CTC logloss function to perform optical character recognition | |
of generated text images. I have no evidence of whether it actually | |
learns general shapes of text, or just is able to recognize all | |
the different fonts thrown at it...the purpose is more to demonstrate CTC | |
inside of Keras. Note that the font list may need to be updated | |
for the particular OS in use. | |
This starts off with 4 letter words. For the first 12 epochs, the | |
difficulty is gradually increased using the TextImageGenerator class |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I1220 16:01:43.502776 3961783232 solver.cpp:228] Iteration 0, loss = 5.0178 | |
I1220 16:01:43.502820 3961783232 solver.cpp:244] Train net output #0: loss = 5.0178 (* 1 = 5.0178 loss) | |
I1220 16:01:43.502847 3961783232 sgd_solver.cpp:106] Iteration 0, lr = 0.001 | |
I1220 16:02:51.024165 3961783232 solver.cpp:228] Iteration 100, loss = 1.87306 | |
I1220 16:02:51.063248 3961783232 solver.cpp:244] Train net output #0: loss = 1.87306 (* 1 = 1.87306 loss) | |
I1220 16:02:51.063267 3961783232 sgd_solver.cpp:106] Iteration 100, lr = 0.001 | |
I1220 16:03:58.084491 3961783232 solver.cpp:228] Iteration 200, loss = 1.01183 | |
I1220 16:03:58.084777 3961783232 solver.cpp:244] Train net output #0: loss = 1.01183 (* 1 = 1.01183 loss) | |
I1220 16:03:58.084800 3961783232 sgd_solver.cpp:106] Iteration 200, lr = 0.001 | |
I1220 16:05:05.282796 3961783232 solver.cpp:228] Iteration 300, loss = 0.772216 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I0320 14:39:22.460748 8660 solver.cpp:219] Iteration 0 (-6.57593e+33 iter/s, 0.322088s/250 iters), loss = 0.901091 | |
I0320 14:39:22.460778 8660 solver.cpp:238] Train net output #0: loss1 = 0.693134 (* 0.3 = 0.20794 loss) | |
I0320 14:39:22.460798 8660 solver.cpp:238] Train net output #1: loss2 = 0.693151 (* 1 = 0.693151 loss) | |
I0320 14:39:22.460814 8660 sgd_solver.cpp:105] Iteration 0, lr = 0.0001 | |
I0320 14:40:56.452066 8660 solver.cpp:219] Iteration 250 (2.65983 iter/s, 93.9909s/250 iters), loss = 0.133513 | |
I0320 14:40:56.452141 8660 solver.cpp:238] Train net output #0: loss1 = 0.119867 (* 0.3 = 0.0359602 loss) | |
I0320 14:40:56.452162 8660 solver.cpp:238] Train net output #1: loss2 = 0.0975531 (* 1 = 0.0975531 loss) | |
I0320 14:40:56.452167 8660 sgd_solver.cpp:105] Iteration 250, lr = 0.0001 | |
I0320 14:42:58.538004 8660 solver.cpp:448] Snapshotting to binary proto file snapshots/sale_iter_500.caffemodel | |
I0320 14:42:58.732300 8660 sgd_solver.cpp:273] Snapshotting solver state to binary proto file sn |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I1113 13:59:14.466996 15355 solver.cpp:337] Iteration 0, Testing net (#0) | |
I1113 13:59:14.481719 15355 net.cpp:693] Ignoring source layer prob | |
I1113 13:59:44.028913 15355 solver.cpp:404] Test net output #0: accuracy = 0.013875 | |
I1113 13:59:44.168041 15355 solver.cpp:228] Iteration 0, loss = 4.52858 | |
I1113 13:59:44.168081 15355 solver.cpp:244] Train net output #0: loss = 4.52858 (* 1 = 4.52858 loss) | |
I1113 13:59:44.168093 15355 sgd_solver.cpp:106] Iteration 0, lr = 0.001 | |
I1113 14:03:18.589840 15355 solver.cpp:228] Iteration 1000, loss = 0.235305 | |
I1113 14:03:18.589912 15355 solver.cpp:244] Train net output #0: loss = 0.235305 (* 1 = 0.235305 loss) | |
I1113 14:03:18.589920 15355 sgd_solver.cpp:106] Iteration 1000, lr = 0.001 | |
I1113 14:06:52.377185 15355 solver.cpp:228] Iteration 2000, loss = 0.0354668 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I1112 18:26:20.476073 22658 solver.cpp:337] Iteration 0, Testing net (#0) | |
I1112 18:26:20.486620 22658 net.cpp:693] Ignoring source layer prob | |
I1112 18:26:22.844864 22658 solver.cpp:404] Test net output #0: accuracy = 0.02416 | |
I1112 18:26:22.862859 22658 solver.cpp:228] Iteration 0, loss = 38.3147 | |
I1112 18:26:22.862937 22658 solver.cpp:244] Train net output #0: loss = 38.3147 (* 1 = 38.3147 loss) | |
I1112 18:26:22.862980 22658 sgd_solver.cpp:106] Iteration 0, lr = 0.01 | |
I1112 18:27:25.690100 22658 solver.cpp:228] Iteration 1000, loss = 4.31486 | |
I1112 18:27:25.690229 22658 solver.cpp:244] Train net output #0: loss = 4.31486 (* 1 = 4.31486 loss) | |
I1112 18:27:25.690245 22658 sgd_solver.cpp:106] Iteration 1000, lr = 0.01 | |
I1112 18:28:28.546875 22658 solver.cpp:228] Iteration 2000, loss = 4.29191 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I1112 07:17:41.890250 17193 solver.cpp:337] Iteration 0, Testing net (#0) | |
I1112 07:17:41.896697 17193 net.cpp:693] Ignoring source layer drop1 | |
I1112 07:17:41.901717 17193 net.cpp:693] Ignoring source layer prob | |
I1112 07:17:49.161095 17193 solver.cpp:404] Test net output #0: accuracy = 0.02056 | |
I1112 07:17:49.283001 17193 solver.cpp:228] Iteration 0, loss = 5.03651 | |
I1112 07:17:49.283051 17193 solver.cpp:244] Train net output #0: loss = 5.03651 (* 1 = 5.03651 loss) | |
I1112 07:17:49.283078 17193 sgd_solver.cpp:106] Iteration 0, lr = 0.01 | |
I1112 07:19:59.706967 17193 solver.cpp:228] Iteration 1000, loss = 1.17764 | |
I1112 07:19:59.707039 17193 solver.cpp:244] Train net output #0: loss = 1.17765 (* 1 = 1.17765 loss) | |
I1112 07:19:59.707053 17193 sgd_solver.cpp:106] Iteration 1000, lr = 0.000187328 |