The captcha solver made by and for japanese high school girls!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

247 lines
7.8 KiB

(() => {
// src/model.js
window.modelJSON = {
format: "layers-model",
generatedBy: "keras v2.4.0",
convertedBy: "TensorFlow.js Converter v3.7.0",
modelTopology: {
keras_version: "2.4.0",
backend: "tensorflow",
model_config: {
class_name: "Sequential",
config: {
name: "sequential",
layers: [
{
class_name: "InputLayer",
config: {
batch_input_shape: [null, null, 80, 1],
dtype: "float32",
sparse: false,
ragged: false,
name: "conv2d_input"
}
},
{
class_name: "Conv2D",
config: {
name: "conv2d",
trainable: true,
batch_input_shape: [null, null, 80, 1],
dtype: "float32",
filters: 40,
kernel_size: [3, 3],
strides: [1, 1],
padding: "same",
data_format: "channels_last",
dilation_rate: [1, 1],
groups: 1,
activation: "relu",
use_bias: true,
kernel_initializer: {
class_name: "GlorotUniform",
config: { seed: null }
},
bias_initializer: { class_name: "Zeros", config: {} },
kernel_regularizer: null,
bias_regularizer: null,
activity_regularizer: null,
kernel_constraint: null,
bias_constraint: null
}
},
{
class_name: "MaxPooling2D",
config: {
name: "max_pooling2d",
trainable: true,
dtype: "float32",
pool_size: [2, 2],
padding: "same",
strides: [2, 2],
data_format: "channels_last"
}
},
{
class_name: "Conv2D",
config: {
name: "conv2d_1",
trainable: true,
dtype: "float32",
filters: 60,
kernel_size: [3, 3],
strides: [1, 1],
padding: "same",
data_format: "channels_last",
dilation_rate: [1, 1],
groups: 1,
activation: "relu",
use_bias: true,
kernel_initializer: {
class_name: "GlorotUniform",
config: { seed: null }
},
bias_initializer: { class_name: "Zeros", config: {} },
kernel_regularizer: null,
bias_regularizer: null,
activity_regularizer: null,
kernel_constraint: null,
bias_constraint: null
}
},
{
class_name: "MaxPooling2D",
config: {
name: "max_pooling2d_1",
trainable: true,
dtype: "float32",
pool_size: [2, 2],
padding: "same",
strides: [2, 2],
data_format: "channels_last"
}
},
{
class_name: "Reshape",
config: {
name: "reshape",
trainable: true,
dtype: "float32",
target_shape: [-1, 1200]
}
},
{
class_name: "Bidirectional",
config: {
name: "bidi",
trainable: true,
dtype: "float32",
layer: {
class_name: "LSTM",
config: {
name: "lstm",
trainable: true,
dtype: "float32",
return_sequences: true,
return_state: false,
go_backwards: false,
stateful: false,
unroll: false,
time_major: false,
units: 200,
activation: "tanh",
recurrent_activation: "sigmoid",
use_bias: true,
kernel_initializer: {
class_name: "GlorotUniform",
config: { seed: null }
},
recurrent_initializer: {
class_name: "Orthogonal",
config: { gain: 1, seed: null }
},
bias_initializer: { class_name: "Zeros", config: {} },
unit_forget_bias: true,
kernel_regularizer: null,
recurrent_regularizer: null,
bias_regularizer: null,
activity_regularizer: null,
kernel_constraint: null,
recurrent_constraint: null,
bias_constraint: null,
dropout: 0,
recurrent_dropout: 0,
implementation: 2
}
},
merge_mode: "concat"
}
},
{
class_name: "Dense",
config: {
name: "dense",
trainable: true,
dtype: "float32",
units: 22,
activation: "softmax",
use_bias: true,
kernel_initializer: {
class_name: "GlorotUniform",
config: { seed: null }
},
bias_initializer: { class_name: "Zeros", config: {} },
kernel_regularizer: null,
bias_regularizer: null,
activity_regularizer: null,
kernel_constraint: null,
bias_constraint: null
}
}
]
}
},
training_config: {
loss: null,
metrics: null,
weighted_metrics: null,
loss_weights: null,
optimizer_config: {
class_name: "RMSprop",
config: {
name: "RMSprop",
learning_rate: 1e-3,
decay: 0,
rho: 0.9,
momentum: 0,
epsilon: 1e-7,
centered: false
}
}
}
},
weightsManifest: [
{
paths: ["group1-shard1of1.bin"],
weights: [
{
name: "bidi/forward_lstm/lstm_cell_4/kernel",
shape: [1200, 800],
dtype: "float32"
},
{
name: "bidi/forward_lstm/lstm_cell_4/recurrent_kernel",
shape: [200, 800],
dtype: "float32"
},
{
name: "bidi/forward_lstm/lstm_cell_4/bias",
shape: [800],
dtype: "float32"
},
{
name: "bidi/backward_lstm/lstm_cell_5/kernel",
shape: [1200, 800],
dtype: "float32"
},
{
name: "bidi/backward_lstm/lstm_cell_5/recurrent_kernel",
shape: [200, 800],
dtype: "float32"
},
{
name: "bidi/backward_lstm/lstm_cell_5/bias",
shape: [800],
dtype: "float32"
},
{ name: "conv2d/kernel", shape: [3, 3, 1, 40], dtype: "float32" },
{ name: "conv2d/bias", shape: [40], dtype: "float32" },
{ name: "conv2d_1/kernel", shape: [3, 3, 40, 60], dtype: "float32" },
{ name: "conv2d_1/bias", shape: [60], dtype: "float32" },
{ name: "dense/kernel", shape: [400, 22], dtype: "float32" },
{ name: "dense/bias", shape: [22], dtype: "float32" }
]
}
]
};
})();