Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Hands On: Minesweeper

minesweeper.livemd

Hands On: Minesweeper

Mix.install(
  [
    {:nx, "~> 0.6.3"},
    {:exla, "~> 0.6.4"},
    {:nimble_csv, "~> 1.2"}
  ],
  config: [nx: [default_backend: EXLA.Backend]]
)

Importing & Preparing Dataset

defmodule C7.Sonar do
  @doc """
  Inserts a column of 1's into position 0 of tensor X along the the x-axis
  """
  def prepend_bias(x) do
    {row, _col} = Nx.shape(x)
    bias = Nx.broadcast(Nx.tensor(1), {row, 1})
    Nx.concatenate([bias, x], axis: 1)
  end

  @doc "Flip hot values to 1"
  def one_hot_encode(y) do
    Nx.equal(y, Nx.tensor([0, 1]))
  end
end
{:module, C7.Sonar, <<70, 79, 82, 49, 0, 0, 9, ...>>, {:one_hot_encode, 1}}
NimbleCSV.define(SonarParser, separator: ",", escape: "\"")

file = __DIR__ |> Path.join("/files") |> Path.join("sonar.all-data")

# Parse data from csv:
# Convert all labels to 0 and 1 for mines and rocks, respectively
# then convert all data to float
dataset =
  file
  |> File.stream!()
  |> SonarParser.parse_stream()
  |> Stream.map(fn list ->
    list
    |> Stream.map(fn
      "M" -> 1
      "R" -> 0
      data -> String.to_float(data)
    end)
    |> Enum.to_list()
  end)
  |> Enum.to_list()
  |> Nx.tensor(type: :f32)

# Shuffle data because sonar data contains rock examples first
{shuffled, _} = Nx.Random.shuffle(Nx.Random.key(999_999), dataset)
# Dataset has 208 examples, we'll use 48 of them for testing (~23%)
{training_set, test_set} = Nx.split(shuffled, 0.77)

# x: Get all columns except the last one (label)
x_train = training_set[[.., 0..-2//1]] |> C7.Sonar.prepend_bias()
x_test = test_set[[.., 0..-2//1]] |> C7.Sonar.prepend_bias()

# y: Get last column (label), one-hot encode only y_train because
# the classify/1 function will convert it back to decoded format
# which is either 1 or 0
y_train = training_set[[.., -1..-1//1]] |> C7.Sonar.one_hot_encode()
y_test = test_set[[.., -1..-1//1]]
#Nx.Tensor<
  f32[47][1]
  EXLA.Backend
  [
    [1.0],
    [1.0],
    [0.0],
    [0.0],
    [1.0],
    [1.0],
    [1.0],
    [1.0],
    [0.0],
    [1.0],
    [0.0],
    [1.0],
    [0.0],
    [1.0],
    [1.0],
    [0.0],
    [1.0],
    [1.0],
    [1.0],
    [0.0],
    [0.0],
    [1.0],
    [0.0],
    [1.0],
    [1.0],
    [1.0],
    [0.0],
    [1.0],
    [0.0],
    [1.0],
    [1.0],
    [0.0],
    [0.0],
    [1.0],
    [1.0],
    [1.0],
    [0.0],
    [1.0],
    [0.0],
    [0.0],
    [1.0],
    [1.0],
    [0.0],
    [0.0],
    [1.0],
    [1.0],
    [1.0]
  ]
>

Sonar Classifier

defmodule C7.SonarClassifier do
  @moduledoc "Same as C7.MNISTClassifier"
  import Nx.Defn

  defn sigmoid(z) do
    1 / (1 + Nx.exp(-z))
  end

  # renaming predict function to forward
  def forward(x, w) do
    weighted_sum = Nx.dot(x, w)
    sigmoid(weighted_sum)
  end

  def classify(x, w) do
    x
    |> forward(w)
    |> Nx.argmax(axis: 1)
    |> Nx.reshape({:auto, 1})
  end

  def loss(x, y, w) do
    y_hat = forward(x, w)
    first_term = Nx.multiply(y, Nx.log(y_hat))
    second_term = Nx.multiply(Nx.subtract(1, y), Nx.log(Nx.subtract(1, y_hat)))

    first_term
    |> Nx.add(second_term)
    |> Nx.mean()
    |> Nx.multiply(-1)
  end

  def gradient(x, y, w) do
    {num_samples, _} = Nx.shape(x)

    x
    |> forward(w)
    |> Nx.subtract(y)
    |> then(&amp;Nx.dot(Nx.transpose(x), &amp;1))
    |> Nx.divide(num_samples)
  end

  def train(x_train, y_train, x_test, y_test, iterations, lr) do
    {_, x_cols} = Nx.shape(x_train)
    {_, y_cols} = Nx.shape(y_train)

    w = Nx.broadcast(0, {x_cols, y_cols})

    Enum.reduce(0..iterations, w, fn i, w ->
      gradient = gradient(x_train, y_train, w)
      report(i, x_train, y_train, x_test, y_test, w)
      Nx.subtract(w, Nx.multiply(gradient, lr))
    end)
  end

  def report(iteration, x_train, y_train, x_test, y_test, w) do
    matches =
      x_test
      |> classify(w)
      |> Nx.equal(y_test)
      |> Nx.sum()

    {n_test_examples, _} = Nx.shape(x_test)
    match_percentage = Nx.to_number(matches) * 100 / n_test_examples
    training_loss = loss(x_train, y_train, w)
    IO.puts("#{iteration} - Loss: #{Nx.to_number(training_loss)}, #{match_percentage}")
  end
end
{:module, C7.SonarClassifier, <<70, 79, 82, 49, 0, 0, 24, ...>>, {:report, 6}}

Training

C7.SonarClassifier.train(x_train, y_train, x_test, y_test, 100_000, 0.01)
...
99002 - Loss: 0.3476203382015228, 78.72340425531915
99003 - Loss: 0.3476198613643646, 78.72340425531915
99004 - Loss: 0.3476194739341736, 78.72340425531915
99005 - Loss: 0.34761905670166016, 78.72340425531915
99006 - Loss: 0.34761863946914673, 78.72340425531915
99007 - Loss: 0.3476181626319885, 78.72340425531915
99008 - Loss: 0.3476177752017975, 78.72340425531915
99009 - Loss: 0.34761735796928406, 78.72340425531915
99010 - Loss: 0.34761685132980347, 78.72340425531915
99011 - Loss: 0.3476164638996124, 78.72340425531915
99012 - Loss: 0.3476160168647766, 78.72340425531915
99013 - Loss: 0.3476155698299408, 78.72340425531915
99014 - Loss: 0.34761515259742737, 78.72340425531915
99015 - Loss: 0.34761467576026917, 78.72340425531915
99016 - Loss: 0.34761425852775574, 78.72340425531915
99017 - Loss: 0.3476138412952423, 78.72340425531915
99018 - Loss: 0.3476133942604065, 78.72340425531915
99019 - Loss: 0.3476129472255707, 78.72340425531915
99020 - Loss: 0.34761255979537964, 78.72340425531915
99021 - Loss: 0.34761208295822144, 78.72340425531915
99022 - Loss: 0.347611665725708, 78.72340425531915
99023 - Loss: 0.3476112484931946, 78.72340425531915
99024 - Loss: 0.34761080145835876, 78.72340425531915
99025 - Loss: 0.34761038422584534, 78.72340425531915
99026 - Loss: 0.3476099371910095, 78.72340425531915
99027 - Loss: 0.3476095199584961, 78.72340425531915
99028 - Loss: 0.3476090729236603, 78.72340425531915
99029 - Loss: 0.34760868549346924, 78.72340425531915
99030 - Loss: 0.3476082682609558, 78.72340425531915
99031 - Loss: 0.3476077914237976, 78.72340425531915
99032 - Loss: 0.3476073145866394, 78.72340425531915
99033 - Loss: 0.347606897354126, 78.72340425531915
99034 - Loss: 0.34760645031929016, 78.72340425531915
99035 - Loss: 0.34760603308677673, 78.72340425531915
99036 - Loss: 0.3476056158542633, 78.72340425531915
99037 - Loss: 0.3476051688194275, 78.72340425531915
99038 - Loss: 0.34760475158691406, 78.72340425531915
99039 - Loss: 0.34760433435440063, 78.72340425531915
99040 - Loss: 0.3476038873195648, 78.72340425531915
99041 - Loss: 0.3476034998893738, 78.72340425531915
99042 - Loss: 0.3476030230522156, 78.72340425531915
99043 - Loss: 0.34760260581970215, 78.72340425531915
99044 - Loss: 0.34760215878486633, 78.72340425531915
99045 - Loss: 0.3476017415523529, 78.72340425531915
99046 - Loss: 0.3476012945175171, 78.72340425531915
99047 - Loss: 0.34760087728500366, 78.72340425531915
99048 - Loss: 0.34760040044784546, 78.72340425531915
99049 - Loss: 0.34759998321533203, 78.72340425531915
99050 - Loss: 0.3475995659828186, 78.72340425531915
99051 - Loss: 0.3475991487503052, 78.72340425531915
99052 - Loss: 0.34759870171546936, 78.72340425531915
99053 - Loss: 0.3475983142852783, 78.72340425531915
99054 - Loss: 0.3475978374481201, 78.72340425531915
99055 - Loss: 0.3475974202156067, 78.72340425531915
99056 - Loss: 0.3475969731807709, 78.72340425531915
99057 - Loss: 0.34759655594825745, 78.72340425531915
99058 - Loss: 0.34759610891342163, 78.72340425531915
99059 - Loss: 0.3475957214832306, 78.72340425531915
99060 - Loss: 0.3475952446460724, 78.72340425531915
99061 - Loss: 0.3475947976112366, 78.72340425531915
99062 - Loss: 0.34759435057640076, 78.72340425531915
99063 - Loss: 0.3475939631462097, 78.72340425531915
99064 - Loss: 0.34759342670440674, 78.72340425531915
99065 - Loss: 0.3475930690765381, 78.72340425531915
99066 - Loss: 0.34759265184402466, 78.72340425531915
99067 - Loss: 0.34759220480918884, 78.72340425531915
99068 - Loss: 0.3475918173789978, 78.72340425531915
99069 - Loss: 0.3475913107395172, 78.72340425531915
99070 - Loss: 0.34759092330932617, 78.72340425531915
99071 - Loss: 0.3475904166698456, 78.72340425531915
99072 - Loss: 0.34759002923965454, 78.72340425531915
99073 - Loss: 0.3475896120071411, 78.72340425531915
99074 - Loss: 0.3475891947746277, 78.72340425531915
99075 - Loss: 0.3475887179374695, 78.72340425531915
99076 - Loss: 0.34758830070495605, 78.72340425531915
99077 - Loss: 0.3475878834724426, 78.72340425531915
99078 - Loss: 0.3475874364376068, 78.72340425531915
99079 - Loss: 0.3475870192050934, 78.72340425531915
99080 - Loss: 0.34758657217025757, 78.72340425531915
99081 - Loss: 0.34758609533309937, 78.72340425531915
99082 - Loss: 0.3475857079029083, 78.72340425531915
99083 - Loss: 0.3475852906703949, 78.72340425531915
99084 - Loss: 0.34758487343788147, 78.72340425531915
99085 - Loss: 0.34758445620536804, 78.72340425531915
99086 - Loss: 0.3475840389728546, 78.72340425531915
99087 - Loss: 0.3475835919380188, 78.72340425531915
99088 - Loss: 0.3475830554962158, 78.72340425531915
99089 - Loss: 0.34758269786834717, 78.72340425531915
99090 - Loss: 0.34758225083351135, 78.72340425531915
99091 - Loss: 0.34758180379867554, 78.72340425531915
99092 - Loss: 0.3475813865661621, 78.72340425531915
99093 - Loss: 0.3475809693336487, 78.72340425531915
99094 - Loss: 0.34758052229881287, 78.72340425531915
99095 - Loss: 0.34758007526397705, 78.72340425531915
99096 - Loss: 0.34757962822914124, 78.72340425531915
99097 - Loss: 0.3475792407989502, 78.72340425531915
99098 - Loss: 0.34757882356643677, 78.72340425531915
99099 - Loss: 0.34757837653160095, 78.72340425531915
99100 - Loss: 0.3475779592990875, 78.72340425531915
99101 - Loss: 0.3475775122642517, 78.72340425531915
99102 - Loss: 0.34757712483406067, 78.72340425531915
99103 - Loss: 0.34757667779922485, 78.72340425531915
99104 - Loss: 0.34757620096206665, 78.72340425531915
99105 - Loss: 0.34757575392723083, 78.72340425531915
99106 - Loss: 0.3475753366947174, 78.72340425531915
99107 - Loss: 0.34757497906684875, 78.72340425531915
99108 - Loss: 0.34757453203201294, 78.72340425531915
99109 - Loss: 0.34757405519485474, 78.72340425531915
99110 - Loss: 0.3475736379623413, 78.72340425531915
99111 - Loss: 0.3475731611251831, 78.72340425531915
99112 - Loss: 0.34757280349731445, 78.72340425531915
99113 - Loss: 0.34757232666015625, 78.72340425531915
99114 - Loss: 0.3475719094276428, 78.72340425531915
99115 - Loss: 0.347571462392807, 78.72340425531915
99116 - Loss: 0.3475710451602936, 78.72340425531915
99117 - Loss: 0.3475705683231354, 78.72340425531915
99118 - Loss: 0.34757012128829956, 78.72340425531915
99119 - Loss: 0.3475697636604309, 78.72340425531915
99120 - Loss: 0.3475692868232727, 78.72340425531915
99121 - Loss: 0.34756889939308167, 78.72340425531915
99122 - Loss: 0.34756845235824585, 78.72340425531915
99123 - Loss: 0.3475680351257324, 78.72340425531915
99124 - Loss: 0.3475675582885742, 78.72340425531915
99125 - Loss: 0.3475671410560608, 78.72340425531915
99126 - Loss: 0.3475666642189026, 78.72340425531915
99127 - Loss: 0.34756627678871155, 78.72340425531915
99128 - Loss: 0.34756582975387573, 78.72340425531915
99129 - Loss: 0.3475653827190399, 78.72340425531915
99130 - Loss: 0.3475649654865265, 78.72340425531915
99131 - Loss: 0.34756454825401306, 78.72340425531915
99132 - Loss: 0.34756407141685486, 78.72340425531915
99133 - Loss: 0.3475636839866638, 78.72340425531915
99134 - Loss: 0.3475632667541504, 78.72340425531915
99135 - Loss: 0.3475627899169922, 78.72340425531915
99136 - Loss: 0.34756237268447876, 78.72340425531915
99137 - Loss: 0.34756189584732056, 78.72340425531915
99138 - Loss: 0.3475615084171295, 78.72340425531915
99139 - Loss: 0.3475611209869385, 78.72340425531915
99140 - Loss: 0.3475606441497803, 78.72340425531915
99141 - Loss: 0.34756022691726685, 78.72340425531915
99142 - Loss: 0.34755975008010864, 78.72340425531915
99143 - Loss: 0.3475593626499176, 78.72340425531915
99144 - Loss: 0.3475589156150818, 78.72340425531915
99145 - Loss: 0.3475584387779236, 78.72340425531915
99146 - Loss: 0.34755805134773254, 78.72340425531915
99147 - Loss: 0.34755760431289673, 78.72340425531915
99148 - Loss: 0.3475571274757385, 78.72340425531915
99149 - Loss: 0.3475567698478699, 78.72340425531915
99150 - Loss: 0.34755629301071167, 78.72340425531915
99151 - Loss: 0.34755590558052063, 78.72340425531915
99152 - Loss: 0.3475554585456848, 78.72340425531915
99153 - Loss: 0.347555011510849, 78.72340425531915
99154 - Loss: 0.34755459427833557, 78.72340425531915
99155 - Loss: 0.34755417704582214, 78.72340425531915
99156 - Loss: 0.34755373001098633, 78.72340425531915
99157 - Loss: 0.3475533127784729, 78.72340425531915
99158 - Loss: 0.3475528359413147, 78.72340425531915
99159 - Loss: 0.34755241870880127, 78.72340425531915
99160 - Loss: 0.34755200147628784, 78.72340425531915
99161 - Loss: 0.347551554441452, 78.72340425531915
99162 - Loss: 0.3475510776042938, 78.72340425531915
99163 - Loss: 0.3475506901741028, 78.72340425531915
99164 - Loss: 0.34755027294158936, 78.72340425531915
99165 - Loss: 0.3475498557090759, 78.72340425531915
99166 - Loss: 0.3475494384765625, 78.72340425531915
99167 - Loss: 0.3475489616394043, 78.72340425531915
99168 - Loss: 0.3475485146045685, 78.72340425531915
99169 - Loss: 0.34754809737205505, 78.72340425531915
99170 - Loss: 0.347547709941864, 78.72340425531915
99171 - Loss: 0.3475472331047058, 78.72340425531915
99172 - Loss: 0.34754678606987, 78.72340425531915
99173 - Loss: 0.34754642844200134, 78.72340425531915
99174 - Loss: 0.34754592180252075, 78.72340425531915
99175 - Loss: 0.3475455343723297, 78.72340425531915
99176 - Loss: 0.3475451171398163, 78.72340425531915
99177 - Loss: 0.3475446105003357, 78.72340425531915
99178 - Loss: 0.34754425287246704, 78.72340425531915
99179 - Loss: 0.3475438058376312, 78.72340425531915
99180 - Loss: 0.3475433886051178, 78.72340425531915
99181 - Loss: 0.347542941570282, 78.72340425531915
99182 - Loss: 0.34754249453544617, 78.72340425531915
99183 - Loss: 0.34754207730293274, 78.72340425531915
99184 - Loss: 0.34754160046577454, 78.72340425531915
99185 - Loss: 0.3475411832332611, 78.72340425531915
99186 - Loss: 0.3475407361984253, 78.72340425531915
99187 - Loss: 0.34754037857055664, 78.72340425531915
99188 - Loss: 0.34753990173339844, 78.72340425531915
99189 - Loss: 0.34753942489624023, 78.72340425531915
99190 - Loss: 0.3475390672683716, 78.72340425531915
99191 - Loss: 0.34753865003585815, 78.72340425531915
99192 - Loss: 0.34753817319869995, 78.72340425531915
99193 - Loss: 0.3475377559661865, 78.72340425531915
99194 - Loss: 0.3475373089313507, 78.72340425531915
99195 - Loss: 0.3475368618965149, 78.72340425531915
99196 - Loss: 0.3475363850593567, 78.72340425531915
99197 - Loss: 0.34753602743148804, 78.72340425531915
99198 - Loss: 0.3475356101989746, 78.72340425531915
99199 - Loss: 0.3475351333618164, 78.72340425531915
99200 - Loss: 0.347534716129303, 78.72340425531915
99201 - Loss: 0.34753426909446716, 78.72340425531915
99202 - Loss: 0.34753379225730896, 78.72340425531915
99203 - Loss: 0.3475334048271179, 78.72340425531915
99204 - Loss: 0.3475329279899597, 78.72340425531915
99205 - Loss: 0.3475325405597687, 78.72340425531915
99206 - Loss: 0.34753209352493286, 78.72340425531915
99207 - Loss: 0.34753167629241943, 78.72340425531915
99208 - Loss: 0.347531259059906, 78.72340425531915
99209 - Loss: 0.3475307822227478, 78.72340425531915
99210 - Loss: 0.34753039479255676, 78.72340425531915
99211 - Loss: 0.34752991795539856, 78.72340425531915
99212 - Loss: 0.3475295603275299, 78.72340425531915
99213 - Loss: 0.3475291132926941, 78.72340425531915
99214 - Loss: 0.3475286364555359, 78.72340425531915
99215 - Loss: 0.34752827882766724, 78.72340425531915
99216 - Loss: 0.34752780199050903, 78.72340425531915
99217 - Loss: 0.3475273549556732, 78.72340425531915
99218 - Loss: 0.3475269377231598, 78.72340425531915
99219 - Loss: 0.347526490688324, 78.72340425531915
99220 - Loss: 0.34752610325813293, 78.72340425531915
99221 - Loss: 0.3475256562232971, 78.72340425531915
99222 - Loss: 0.3475252687931061, 78.72340425531915
99223 - Loss: 0.3475247621536255, 78.72340425531915
99224 - Loss: 0.34752437472343445, 78.72340425531915
99225 - Loss: 0.34752389788627625, 78.72340425531915
99226 - Loss: 0.3475234806537628, 78.72340425531915
99227 - Loss: 0.3475230634212494, 78.72340425531915
99228 - Loss: 0.3475225567817688, 78.72340425531915
99229 - Loss: 0.34752219915390015, 78.72340425531915
99230 - Loss: 0.3475217819213867, 78.72340425531915
99231 - Loss: 0.34752127528190613, 78.72340425531915
99232 - Loss: 0.3475208878517151, 78.72340425531915
99233 - Loss: 0.3475204408168793, 78.72340425531915
99234 - Loss: 0.34752002358436584, 78.72340425531915
99235 - Loss: 0.34751957654953003, 78.72340425531915
99236 - Loss: 0.34751924872398376, 78.72340425531915
99237 - Loss: 0.3475187420845032, 78.72340425531915
99238 - Loss: 0.34751835465431213, 78.72340425531915
99239 - Loss: 0.34751787781715393, 78.72340425531915
99240 - Loss: 0.3475174307823181, 78.72340425531915
99241 - Loss: 0.3475170135498047, 78.72340425531915
99242 - Loss: 0.34751659631729126, 78.72340425531915
99243 - Loss: 0.3475162088871002, 78.72340425531915
99244 - Loss: 0.347515732049942, 78.72340425531915
99245 - Loss: 0.3475152850151062, 78.72340425531915
99246 - Loss: 0.3475148677825928, 78.72340425531915
99247 - Loss: 0.34751442074775696, 78.72340425531915
99248 - Loss: 0.34751400351524353, 78.72340425531915
99249 - Loss: 0.34751349687576294, 78.72340425531915
99250 - Loss: 0.3475131094455719, 78.72340425531915
99251 - Loss: 0.3475126624107361, 78.72340425531915
99252 - Loss: 0.34751224517822266, 78.72340425531915
99253 - Loss: 0.34751182794570923, 78.72340425531915
99254 - Loss: 0.3475114107131958, 78.72340425531915
99255 - Loss: 0.3475109338760376, 78.72340425531915
99256 - Loss: 0.34751054644584656, 78.72340425531915
99257 - Loss: 0.3475101590156555, 78.72340425531915
99258 - Loss: 0.3475096523761749, 78.72340425531915
99259 - Loss: 0.3475092351436615, 78.72340425531915
99260 - Loss: 0.34750884771347046, 78.72340425531915
99261 - Loss: 0.34750837087631226, 78.72340425531915
99262 - Loss: 0.34750795364379883, 78.72340425531915
99263 - Loss: 0.3475075364112854, 78.72340425531915
99264 - Loss: 0.3475070595741272, 78.72340425531915
99265 - Loss: 0.34750664234161377, 78.72340425531915
99266 - Loss: 0.34750619530677795, 78.72340425531915
99267 - Loss: 0.34750574827194214, 78.72340425531915
99268 - Loss: 0.3475053310394287, 78.72340425531915
99269 - Loss: 0.3475049138069153, 78.72340425531915
99270 - Loss: 0.3475044369697571, 78.72340425531915
99271 - Loss: 0.34750398993492126, 78.72340425531915
99272 - Loss: 0.34750357270240784, 78.72340425531915
99273 - Loss: 0.347503125667572, 78.72340425531915
99274 - Loss: 0.34750276803970337, 78.72340425531915
99275 - Loss: 0.34750232100486755, 78.72340425531915
99276 - Loss: 0.3475019037723541, 78.72340425531915
99277 - Loss: 0.3475014269351959, 78.72340425531915
99278 - Loss: 0.3475010395050049, 78.72340425531915
99279 - Loss: 0.3475005626678467, 78.72340425531915
99280 - Loss: 0.34750017523765564, 78.72340425531915
99281 - Loss: 0.3474997282028198, 78.72340425531915
99282 - Loss: 0.3474993109703064, 78.72340425531915
99283 - Loss: 0.3474988341331482, 78.72340425531915
99284 - Loss: 0.34749841690063477, 78.72340425531915
99285 - Loss: 0.34749799966812134, 78.72340425531915
99286 - Loss: 0.3474975526332855, 78.72340425531915
99287 - Loss: 0.3474971354007721, 78.72340425531915
99288 - Loss: 0.3474966883659363, 78.72340425531915
99289 - Loss: 0.34749627113342285, 78.72340425531915
99290 - Loss: 0.3474958539009094, 78.72340425531915
99291 - Loss: 0.3474953770637512, 78.72340425531915
99292 - Loss: 0.34749501943588257, 78.72340425531915
99293 - Loss: 0.34749454259872437, 78.72340425531915
99294 - Loss: 0.34749409556388855, 78.72340425531915
99295 - Loss: 0.34749364852905273, 78.72340425531915
99296 - Loss: 0.3474932610988617, 78.72340425531915
99297 - Loss: 0.34749284386634827, 78.72340425531915
99298 - Loss: 0.34749239683151245, 78.72340425531915
99299 - Loss: 0.34749194979667664, 78.72340425531915
99300 - Loss: 0.3474915325641632, 78.72340425531915
99301 - Loss: 0.347491055727005, 78.72340425531915
99302 - Loss: 0.3474906384944916, 78.72340425531915
99303 - Loss: 0.34749025106430054, 78.72340425531915
99304 - Loss: 0.34748977422714233, 78.72340425531915
99305 - Loss: 0.34748929738998413, 78.72340425531915
99306 - Loss: 0.3474889397621155, 78.72340425531915
99307 - Loss: 0.34748849272727966, 78.72340425531915
99308 - Loss: 0.3474881052970886, 78.72340425531915
99309 - Loss: 0.3474876880645752, 78.72340425531915
99310 - Loss: 0.34748727083206177, 78.72340425531915
99311 - Loss: 0.3474867343902588, 78.72340425531915
99312 - Loss: 0.34748631715774536, 78.72340425531915
99313 - Loss: 0.3474859297275543, 78.72340425531915
99314 - Loss: 0.3474854826927185, 78.72340425531915
99315 - Loss: 0.3474850058555603, 78.72340425531915
99316 - Loss: 0.34748464822769165, 78.72340425531915
99317 - Loss: 0.34748420119285583, 78.72340425531915
99318 - Loss: 0.3474837839603424, 78.72340425531915
99319 - Loss: 0.3474833071231842, 78.72340425531915
99320 - Loss: 0.34748297929763794, 78.72340425531915
99321 - Loss: 0.34748250246047974, 78.72340425531915
99322 - Loss: 0.34748202562332153, 78.72340425531915
99323 - Loss: 0.3474816381931305, 78.72340425531915
99324 - Loss: 0.3474811613559723, 78.72340425531915
99325 - Loss: 0.34748077392578125, 78.72340425531915
99326 - Loss: 0.34748026728630066, 78.72340425531915
99327 - Loss: 0.3474798798561096, 78.72340425531915
99328 - Loss: 0.3474794030189514, 78.72340425531915
99329 - Loss: 0.3474790155887604, 78.72340425531915
99330 - Loss: 0.34747856855392456, 78.72340425531915
99331 - Loss: 0.34747812151908875, 78.72340425531915
99332 - Loss: 0.34747767448425293, 78.72340425531915
99333 - Loss: 0.3474772572517395, 78.72340425531915
99334 - Loss: 0.3474768102169037, 78.72340425531915
99335 - Loss: 0.34747642278671265, 78.72340425531915
99336 - Loss: 0.34747594594955444, 78.72340425531915
99337 - Loss: 0.3474755585193634, 78.72340425531915
99338 - Loss: 0.3474751114845276, 78.72340425531915
99339 - Loss: 0.3474746346473694, 78.72340425531915
99340 - Loss: 0.34747424721717834, 78.72340425531915
99341 - Loss: 0.34747380018234253, 78.72340425531915
99342 - Loss: 0.3474734127521515, 78.72340425531915
99343 - Loss: 0.3474729657173157, 78.72340425531915
99344 - Loss: 0.34747248888015747, 78.72340425531915
99345 - Loss: 0.34747207164764404, 78.72340425531915
99346 - Loss: 0.347471684217453, 78.72340425531915
99347 - Loss: 0.3474712371826172, 78.72340425531915
99348 - Loss: 0.347470760345459, 78.72340425531915
99349 - Loss: 0.34747034311294556, 78.72340425531915
99350 - Loss: 0.34746992588043213, 78.72340425531915
99351 - Loss: 0.3474695384502411, 78.72340425531915
99352 - Loss: 0.3474690318107605, 78.72340425531915
99353 - Loss: 0.34746867418289185, 78.72340425531915
99354 - Loss: 0.34746819734573364, 78.72340425531915
99355 - Loss: 0.3474677801132202, 78.72340425531915
99356 - Loss: 0.3474673628807068, 78.72340425531915
99357 - Loss: 0.34746694564819336, 78.72340425531915
99358 - Loss: 0.34746652841567993, 78.72340425531915
99359 - Loss: 0.34746605157852173, 78.72340425531915
99360 - Loss: 0.3474656641483307, 78.72340425531915
99361 - Loss: 0.3474651873111725, 78.72340425531915
99362 - Loss: 0.34746474027633667, 78.72340425531915
99363 - Loss: 0.34746432304382324, 78.72340425531915
99364 - Loss: 0.3474639356136322, 78.72340425531915
99365 - Loss: 0.3474634289741516, 78.72340425531915
99366 - Loss: 0.34746307134628296, 78.72340425531915
99367 - Loss: 0.34746259450912476, 78.72340425531915
99368 - Loss: 0.34746214747428894, 78.72340425531915
99369 - Loss: 0.3474617600440979, 78.72340425531915
99370 - Loss: 0.3474613130092621, 78.72340425531915
99371 - Loss: 0.34746086597442627, 78.72340425531915
99372 - Loss: 0.34746044874191284, 78.72340425531915
99373 - Loss: 0.347460001707077, 78.72340425531915
99374 - Loss: 0.347459614276886, 78.72340425531915
99375 - Loss: 0.34745916724205017, 78.72340425531915
99376 - Loss: 0.34745869040489197, 78.72340425531915
99377 - Loss: 0.3474583029747009, 78.72340425531915
99378 - Loss: 0.3474578559398651, 78.72340425531915
99379 - Loss: 0.3474573791027069, 78.72340425531915
99380 - Loss: 0.34745699167251587, 78.72340425531915
99381 - Loss: 0.34745654463768005, 78.72340425531915
99382 - Loss: 0.3474561274051666, 78.72340425531915
99383 - Loss: 0.3474557101726532, 78.72340425531915
99384 - Loss: 0.3474552631378174, 78.72340425531915
99385 - Loss: 0.34745484590530396, 78.72340425531915
99386 - Loss: 0.34745439887046814, 78.72340425531915
99387 - Loss: 0.34745392203330994, 78.72340425531915
99388 - Loss: 0.3474535346031189, 78.72340425531915
99389 - Loss: 0.34745311737060547, 78.72340425531915
99390 - Loss: 0.34745270013809204, 78.72340425531915
99391 - Loss: 0.34745222330093384, 78.72340425531915
99392 - Loss: 0.3474518358707428, 78.72340425531915
99393 - Loss: 0.347451388835907, 78.72340425531915
99394 - Loss: 0.34745097160339355, 78.72340425531915
99395 - Loss: 0.34745049476623535, 78.72340425531915
99396 - Loss: 0.3474500775337219, 78.72340425531915
99397 - Loss: 0.3474496603012085, 78.72340425531915
99398 - Loss: 0.34744924306869507, 78.72340425531915
99399 - Loss: 0.34744885563850403, 78.72340425531915
99400 - Loss: 0.3474484086036682, 78.72340425531915
99401 - Loss: 0.3474479615688324, 78.72340425531915
99402 - Loss: 0.34744754433631897, 78.72340425531915
99403 - Loss: 0.34744706749916077, 78.72340425531915
99404 - Loss: 0.34744662046432495, 78.72340425531915
99405 - Loss: 0.3474462032318115, 78.72340425531915
99406 - Loss: 0.34744569659233093, 78.72340425531915
99407 - Loss: 0.3474453091621399, 78.72340425531915
99408 - Loss: 0.34744495153427124, 78.72340425531915
99409 - Loss: 0.34744447469711304, 78.72340425531915
99410 - Loss: 0.34744399785995483, 78.72340425531915
99411 - Loss: 0.3474435806274414, 78.72340425531915
99412 - Loss: 0.34744319319725037, 78.72340425531915
99413 - Loss: 0.34744277596473694, 78.72340425531915
99414 - Loss: 0.3474423289299011, 78.72340425531915
99415 - Loss: 0.3474418818950653, 78.72340425531915
99416 - Loss: 0.3474414646625519, 78.72340425531915
99417 - Loss: 0.34744101762771606, 78.72340425531915
99418 - Loss: 0.347440630197525, 78.72340425531915
99419 - Loss: 0.3474401533603668, 78.72340425531915
99420 - Loss: 0.347439706325531, 78.72340425531915
99421 - Loss: 0.3474392890930176, 78.72340425531915
99422 - Loss: 0.34743890166282654, 78.72340425531915
99423 - Loss: 0.3474384844303131, 78.72340425531915
99424 - Loss: 0.3474380075931549, 78.72340425531915
99425 - Loss: 0.34743762016296387, 78.72340425531915
99426 - Loss: 0.34743717312812805, 78.72340425531915
99427 - Loss: 0.34743672609329224, 78.72340425531915
99428 - Loss: 0.3474362790584564, 78.72340425531915
99429 - Loss: 0.3474358916282654, 78.72340425531915
99430 - Loss: 0.3474354147911072, 78.72340425531915
99431 - Loss: 0.34743499755859375, 78.72340425531915
99432 - Loss: 0.34743452072143555, 78.72340425531915
99433 - Loss: 0.3474341630935669, 78.72340425531915
99434 - Loss: 0.3474336564540863, 78.72340425531915
99435 - Loss: 0.3474332392215729, 78.72340425531915
99436 - Loss: 0.34743279218673706, 78.72340425531915
99437 - Loss: 0.3474324345588684, 78.72340425531915
99438 - Loss: 0.3474319577217102, 78.72340425531915
99439 - Loss: 0.3474315404891968, 78.72340425531915
99440 - Loss: 0.3474310636520386, 78.72340425531915
99441 - Loss: 0.34743064641952515, 78.72340425531915
99442 - Loss: 0.3474302589893341, 78.72340425531915
99443 - Loss: 0.3474298119544983, 78.72340425531915
99444 - Loss: 0.34742945432662964, 78.72340425531915
99445 - Loss: 0.34742897748947144, 78.72340425531915
99446 - Loss: 0.3474285304546356, 78.72340425531915
99447 - Loss: 0.3474280834197998, 78.72340425531915
99448 - Loss: 0.347427636384964, 78.72340425531915
99449 - Loss: 0.34742721915245056, 78.72340425531915
99450 - Loss: 0.3474268317222595, 78.72340425531915
99451 - Loss: 0.3474263548851013, 78.72340425531915
99452 - Loss: 0.3474258780479431, 78.72340425531915
99453 - Loss: 0.3474254608154297, 78.72340425531915
99454 - Loss: 0.34742504358291626, 78.72340425531915
99455 - Loss: 0.34742462635040283, 78.72340425531915
99456 - Loss: 0.3474242091178894, 78.72340425531915
99457 - Loss: 0.347423791885376, 78.72340425531915
99458 - Loss: 0.34742334485054016, 78.72340425531915
99459 - Loss: 0.34742289781570435, 78.72340425531915
99460 - Loss: 0.3474225401878357, 78.72340425531915
99461 - Loss: 0.3474220335483551, 78.72340425531915
99462 - Loss: 0.34742164611816406, 78.72340425531915
99463 - Loss: 0.3474211096763611, 78.72340425531915
99464 - Loss: 0.3474207818508148, 78.72340425531915
99465 - Loss: 0.347420334815979, 78.72340425531915
99466 - Loss: 0.3474198877811432, 78.72340425531915
99467 - Loss: 0.34741947054862976, 78.72340425531915
99468 - Loss: 0.3474190831184387, 78.72340425531915
99469 - Loss: 0.3474186062812805, 78.72340425531915
99470 - Loss: 0.3474181294441223, 78.72340425531915
99471 - Loss: 0.3474177420139313, 78.72340425531915
99472 - Loss: 0.34741729497909546, 78.72340425531915
99473 - Loss: 0.34741687774658203, 78.72340425531915
99474 - Loss: 0.3474164605140686, 78.72340425531915
99475 - Loss: 0.3474160432815552, 78.72340425531915
99476 - Loss: 0.3474155366420746, 78.72340425531915
99477 - Loss: 0.34741517901420593, 78.72340425531915
99478 - Loss: 0.3474147915840149, 78.72340425531915
99479 - Loss: 0.3474143147468567, 78.72340425531915
99480 - Loss: 0.34741389751434326, 78.72340425531915
99481 - Loss: 0.34741342067718506, 78.72340425531915
99482 - Loss: 0.34741300344467163, 78.72340425531915
99483 - Loss: 0.3474125266075134, 78.72340425531915
99484 - Loss: 0.3474121391773224, 78.72340425531915
99485 - Loss: 0.3474116921424866, 78.72340425531915
99486 - Loss: 0.34741121530532837, 78.72340425531915
99487 - Loss: 0.3474108576774597, 78.72340425531915
99488 - Loss: 0.3474104106426239, 78.72340425531915
99489 - Loss: 0.3474099338054657, 78.72340425531915
99490 - Loss: 0.34740954637527466, 78.72340425531915
99491 - Loss: 0.347409188747406, 78.72340425531915
99492 - Loss: 0.3474087119102478, 78.72340425531915
99493 - Loss: 0.3474082350730896, 78.72340425531915
99494 - Loss: 0.34740784764289856, 78.72340425531915
99495 - Loss: 0.34740737080574036, 78.72340425531915
99496 - Loss: 0.34740695357322693, 78.72340425531915
99497 - Loss: 0.3474064767360687, 78.72340425531915
99498 - Loss: 0.3474060893058777, 78.72340425531915
99499 - Loss: 0.34740567207336426, 78.72340425531915
99500 - Loss: 0.34740525484085083, 78.72340425531915
99501 - Loss: 0.34740474820137024, 78.72340425531915
99502 - Loss: 0.3474043607711792, 78.72340425531915
99503 - Loss: 0.34740397334098816, 78.72340425531915
99504 - Loss: 0.34740352630615234, 78.72340425531915
99505 - Loss: 0.34740304946899414, 78.72340425531915
99506 - Loss: 0.3474026620388031, 78.72340425531915
99507 - Loss: 0.3474022448062897, 78.72340425531915
99508 - Loss: 0.3474017083644867, 78.72340425531915
99509 - Loss: 0.34740138053894043, 78.72340425531915
99510 - Loss: 0.3474009037017822, 78.72340425531915
99511 - Loss: 0.3474004864692688, 78.72340425531915
99512 - Loss: 0.34740006923675537, 78.72340425531915
99513 - Loss: 0.34739962220191956, 78.72340425531915
99514 - Loss: 0.34739917516708374, 78.72340425531915
99515 - Loss: 0.34739869832992554, 78.72340425531915
99516 - Loss: 0.3473983108997345, 78.72340425531915
99517 - Loss: 0.3473978638648987, 78.72340425531915
99518 - Loss: 0.34739747643470764, 78.72340425531915
99519 - Loss: 0.3473970293998718, 78.72340425531915
99520 - Loss: 0.3473965525627136, 78.72340425531915
99521 - Loss: 0.34739619493484497, 78.72340425531915
99522 - Loss: 0.34739580750465393, 78.72340425531915
99523 - Loss: 0.3473953306674957, 78.72340425531915
99524 - Loss: 0.3473948836326599, 78.72340425531915
99525 - Loss: 0.3473944067955017, 78.72340425531915
99526 - Loss: 0.34739404916763306, 78.72340425531915
99527 - Loss: 0.34739360213279724, 78.72340425531915
99528 - Loss: 0.3473931849002838, 78.72340425531915
99529 - Loss: 0.347392737865448, 78.72340425531915
99530 - Loss: 0.3473922908306122, 78.72340425531915
99531 - Loss: 0.34739187359809875, 78.72340425531915
99532 - Loss: 0.34739142656326294, 78.72340425531915
99533 - Loss: 0.3473910391330719, 78.72340425531915
99534 - Loss: 0.34739062190055847, 78.72340425531915
99535 - Loss: 0.3473901152610779, 78.72340425531915
99536 - Loss: 0.34738969802856445, 78.72340425531915
99537 - Loss: 0.347389280796051, 78.72340425531915
99538 - Loss: 0.3473888635635376, 78.72340425531915
99539 - Loss: 0.3473883867263794, 78.72340425531915
99540 - Loss: 0.34738799929618835, 78.72340425531915
99541 - Loss: 0.34738755226135254, 78.72340425531915
99542 - Loss: 0.3473871350288391, 78.72340425531915
99543 - Loss: 0.3473866581916809, 78.72340425531915
99544 - Loss: 0.34738627076148987, 78.72340425531915
99545 - Loss: 0.34738585352897644, 78.72340425531915
99546 - Loss: 0.3473854660987854, 78.72340425531915
99547 - Loss: 0.3473849892616272, 78.72340425531915
99548 - Loss: 0.34738457202911377, 78.72340425531915
99549 - Loss: 0.34738412499427795, 78.72340425531915
99550 - Loss: 0.34738367795944214, 78.72340425531915
99551 - Loss: 0.3473832309246063, 78.72340425531915
99552 - Loss: 0.3473827838897705, 78.72340425531915
99553 - Loss: 0.3473823666572571, 78.72340425531915
99554 - Loss: 0.34738194942474365, 78.72340425531915
99555 - Loss: 0.3473815321922302, 78.72340425531915
99556 - Loss: 0.347381055355072, 78.72340425531915
99557 - Loss: 0.34738069772720337, 78.72340425531915
99558 - Loss: 0.34738025069236755, 78.72340425531915
99559 - Loss: 0.3473798334598541, 78.72340425531915
99560 - Loss: 0.3473793566226959, 78.72340425531915
99561 - Loss: 0.3473789691925049, 78.72340425531915
99562 - Loss: 0.3473784327507019, 78.72340425531915
99563 - Loss: 0.34737807512283325, 78.72340425531915
99564 - Loss: 0.34737762808799744, 78.72340425531915
99565 - Loss: 0.347377210855484, 78.72340425531915
99566 - Loss: 0.3473767936229706, 78.72340425531915
99567 - Loss: 0.34737640619277954, 78.72340425531915
99568 - Loss: 0.34737592935562134, 78.72340425531915
99569 - Loss: 0.3473754823207855, 78.72340425531915
99570 - Loss: 0.3473750054836273, 78.72340425531915
99571 - Loss: 0.34737464785575867, 78.72340425531915
99572 - Loss: 0.34737417101860046, 78.72340425531915
99573 - Loss: 0.34737375378608704, 78.72340425531915
99574 - Loss: 0.3473733067512512, 78.72340425531915
99575 - Loss: 0.3473729193210602, 78.72340425531915
99576 - Loss: 0.34737247228622437, 78.72340425531915
99577 - Loss: 0.34737199544906616, 78.72340425531915
99578 - Loss: 0.34737157821655273, 78.72340425531915
99579 - Loss: 0.3473711609840393, 78.72340425531915
99580 - Loss: 0.3473707437515259, 78.72340425531915
99581 - Loss: 0.34737032651901245, 78.72340425531915
99582 - Loss: 0.347369909286499, 78.72340425531915
99583 - Loss: 0.3473694622516632, 78.72340425531915
99584 - Loss: 0.3473690152168274, 78.72340425531915
99585 - Loss: 0.34736865758895874, 78.72340425531915
99586 - Loss: 0.34736818075180054, 78.72340425531915
99587 - Loss: 0.34736770391464233, 78.72340425531915
99588 - Loss: 0.3473672866821289, 78.72340425531915
99589 - Loss: 0.3473668694496155, 78.72340425531915
99590 - Loss: 0.34736642241477966, 78.72340425531915
99591 - Loss: 0.34736600518226624, 78.72340425531915
99592 - Loss: 0.3473655581474304, 78.72340425531915
99593 - Loss: 0.3473650813102722, 78.72340425531915
99594 - Loss: 0.34736472368240356, 78.72340425531915
99595 - Loss: 0.3473643362522125, 78.72340425531915
99596 - Loss: 0.3473638594150543, 78.72340425531915
99597 - Loss: 0.3473634123802185, 78.72340425531915
99598 - Loss: 0.3473629951477051, 78.72340425531915
99599 - Loss: 0.34736257791519165, 78.72340425531915
99600 - Loss: 0.34736210107803345, 78.72340425531915
99601 - Loss: 0.3473617136478424, 78.72340425531915
99602 - Loss: 0.347361296415329, 78.72340425531915
99603 - Loss: 0.34736084938049316, 78.72340425531915
99604 - Loss: 0.34736043214797974, 78.72340425531915
99605 - Loss: 0.34735995531082153, 78.72340425531915
99606 - Loss: 0.3473595976829529, 78.72340425531915
99607 - Loss: 0.34735915064811707, 78.72340425531915
99608 - Loss: 0.34735870361328125, 78.72340425531915
99609 - Loss: 0.3473582863807678, 78.72340425531915
99610 - Loss: 0.34735777974128723, 78.72340425531915
99611 - Loss: 0.3473574221134186, 78.72340425531915
99612 - Loss: 0.3473569452762604, 78.72340425531915
99613 - Loss: 0.3473565876483917, 78.72340425531915
99614 - Loss: 0.3473561108112335, 78.72340425531915
99615 - Loss: 0.3473556339740753, 78.72340425531915
99616 - Loss: 0.3473552167415619, 78.72340425531915
99617 - Loss: 0.34735479950904846, 78.72340425531915
99618 - Loss: 0.34735438227653503, 78.72340425531915
99619 - Loss: 0.3473539352416992, 78.72340425531915
99620 - Loss: 0.3473535180091858, 78.72340425531915
99621 - Loss: 0.34735307097435, 78.72340425531915
99622 - Loss: 0.34735265374183655, 78.72340425531915
99623 - Loss: 0.34735220670700073, 78.72340425531915
99624 - Loss: 0.3473517894744873, 78.72340425531915
99625 - Loss: 0.3473513126373291, 78.72340425531915
99626 - Loss: 0.3473508954048157, 78.72340425531915
99627 - Loss: 0.34735050797462463, 78.72340425531915
99628 - Loss: 0.3473500907421112, 78.72340425531915
99629 - Loss: 0.3473495841026306, 78.72340425531915
99630 - Loss: 0.34734922647476196, 78.72340425531915
99631 - Loss: 0.34734871983528137, 78.72340425531915
99632 - Loss: 0.34734827280044556, 78.72340425531915
99633 - Loss: 0.3473479449748993, 78.72340425531915
99634 - Loss: 0.3473474681377411, 78.72340425531915
99635 - Loss: 0.34734708070755005, 78.72340425531915
99636 - Loss: 0.34734660387039185, 78.72340425531915
99637 - Loss: 0.34734615683555603, 78.72340425531915
99638 - Loss: 0.3473457396030426, 78.72340425531915
99639 - Loss: 0.3473453223705292, 78.72340425531915
99640 - Loss: 0.34734484553337097, 78.72340425531915
99641 - Loss: 0.34734445810317993, 78.72340425531915
99642 - Loss: 0.34734398126602173, 78.72340425531915
99643 - Loss: 0.3473435640335083, 78.72340425531915
99644 - Loss: 0.34734320640563965, 78.72340425531915
99645 - Loss: 0.34734275937080383, 78.72340425531915
99646 - Loss: 0.347342312335968, 78.72340425531915
99647 - Loss: 0.3473418354988098, 78.72340425531915
99648 - Loss: 0.3473414480686188, 78.72340425531915
99649 - Loss: 0.34734100103378296, 78.72340425531915
99650 - Loss: 0.34734058380126953, 78.72340425531915
99651 - Loss: 0.3473401367664337, 78.72340425531915
99652 - Loss: 0.3473397195339203, 78.72340425531915
99653 - Loss: 0.34733930230140686, 78.72340425531915
99654 - Loss: 0.34733882546424866, 78.72340425531915
99655 - Loss: 0.34733837842941284, 78.72340425531915
99656 - Loss: 0.3473380208015442, 78.72340425531915
99657 - Loss: 0.347337543964386, 78.72340425531915
99658 - Loss: 0.34733718633651733, 78.72340425531915
99659 - Loss: 0.34733670949935913, 78.72340425531915
99660 - Loss: 0.3473362624645233, 78.72340425531915
99661 - Loss: 0.3473358154296875, 78.72340425531915
99662 - Loss: 0.3473353981971741, 78.72340425531915
99663 - Loss: 0.3473350405693054, 78.72340425531915
99664 - Loss: 0.34733453392982483, 78.72340425531915
99665 - Loss: 0.347334086894989, 78.72340425531915
99666 - Loss: 0.34733372926712036, 78.72340425531915
99667 - Loss: 0.34733325242996216, 78.72340425531915
99668 - Loss: 0.34733280539512634, 78.72340425531915
99669 - Loss: 0.3473323881626129, 78.72340425531915
99670 - Loss: 0.3473319709300995, 78.72340425531915
99671 - Loss: 0.34733152389526367, 78.72340425531915
99672 - Loss: 0.34733110666275024, 78.72340425531915
99673 - Loss: 0.34733065962791443, 78.72340425531915
99674 - Loss: 0.3473302721977234, 78.72340425531915
99675 - Loss: 0.3473297953605652, 78.72340425531915
99676 - Loss: 0.34732937812805176, 78.72340425531915
99677 - Loss: 0.34732896089553833, 78.72340425531915
99678 - Loss: 0.3473284840583801, 78.72340425531915
99679 - Loss: 0.3473280370235443, 78.72340425531915
99680 - Loss: 0.34732767939567566, 78.72340425531915
99681 - Loss: 0.34732726216316223, 78.72340425531915
99682 - Loss: 0.3473268151283264, 78.72340425531915
99683 - Loss: 0.3473263382911682, 78.72340425531915
99684 - Loss: 0.3473259508609772, 78.72340425531915
99685 - Loss: 0.34732553362846375, 78.72340425531915
99686 - Loss: 0.34732508659362793, 78.72340425531915
99687 - Loss: 0.3473246693611145, 78.72340425531915
99688 - Loss: 0.3473242223262787, 78.72340425531915
99689 - Loss: 0.34732380509376526, 78.72340425531915
99690 - Loss: 0.34732338786125183, 78.72340425531915
99691 - Loss: 0.34732288122177124, 78.72340425531915
99692 - Loss: 0.3473225235939026, 78.72340425531915
99693 - Loss: 0.3473220467567444, 78.72340425531915
99694 - Loss: 0.34732159972190857, 78.72340425531915
99695 - Loss: 0.34732121229171753, 78.72340425531915
99696 - Loss: 0.3473207652568817, 78.72340425531915
99697 - Loss: 0.3473203480243683, 78.72340425531915
99698 - Loss: 0.34731990098953247, 78.72340425531915
99699 - Loss: 0.34731942415237427, 78.72340425531915
99700 - Loss: 0.34731897711753845, 78.72340425531915
99701 - Loss: 0.3473185896873474, 78.72340425531915
99702 - Loss: 0.3473181426525116, 78.72340425531915
99703 - Loss: 0.34731775522232056, 78.72340425531915
99704 - Loss: 0.3473173677921295, 78.72340425531915
99705 - Loss: 0.3473168909549713, 78.72340425531915
99706 - Loss: 0.3473164141178131, 78.72340425531915
99707 - Loss: 0.34731602668762207, 78.72340425531915
99708 - Loss: 0.34731560945510864, 78.72340425531915
99709 - Loss: 0.3473151624202728, 78.72340425531915
99710 - Loss: 0.3473147451877594, 78.72340425531915
99711 - Loss: 0.3473142981529236, 78.72340425531915
99712 - Loss: 0.34731385111808777, 78.72340425531915
99713 - Loss: 0.34731346368789673, 78.72340425531915
99714 - Loss: 0.34731295704841614, 78.72340425531915
99715 - Loss: 0.3473125696182251, 78.72340425531915
99716 - Loss: 0.34731215238571167, 78.72340425531915
99717 - Loss: 0.34731170535087585, 78.72340425531915
99718 - Loss: 0.34731122851371765, 78.72340425531915
99719 - Loss: 0.3473108410835266, 78.72340425531915
99720 - Loss: 0.3473103940486908, 78.72340425531915
99721 - Loss: 0.3473099172115326, 78.72340425531915
99722 - Loss: 0.34730955958366394, 78.72340425531915
99723 - Loss: 0.3473091721534729, 78.72340425531915
99724 - Loss: 0.3473086953163147, 78.72340425531915
99725 - Loss: 0.34730827808380127, 78.72340425531915
99726 - Loss: 0.34730783104896545, 78.72340425531915
99727 - Loss: 0.34730738401412964, 78.72340425531915
99728 - Loss: 0.347307026386261, 78.72340425531915
99729 - Loss: 0.3473065495491028, 78.72340425531915
99730 - Loss: 0.34730610251426697, 78.72340425531915
99731 - Loss: 0.34730568528175354, 78.72340425531915
99732 - Loss: 0.34730520844459534, 78.72340425531915
99733 - Loss: 0.3473047614097595, 78.72340425531915
99734 - Loss: 0.34730440378189087, 78.72340425531915
99735 - Loss: 0.34730398654937744, 78.72340425531915
99736 - Loss: 0.3473035395145416, 78.72340425531915
99737 - Loss: 0.3473030924797058, 78.72340425531915
99738 - Loss: 0.3473026752471924, 78.72340425531915
99739 - Loss: 0.34730225801467896, 78.72340425531915
99740 - Loss: 0.34730178117752075, 78.72340425531915
99741 - Loss: 0.3473014235496521, 78.72340425531915
99742 - Loss: 0.3473009765148163, 78.72340425531915
99743 - Loss: 0.3473004698753357, 78.72340425531915
99744 - Loss: 0.34730014204978943, 78.72340425531915
99745 - Loss: 0.34729963541030884, 78.72340425531915
99746 - Loss: 0.3472992479801178, 78.72340425531915
99747 - Loss: 0.347298800945282, 78.72340425531915
99748 - Loss: 0.34729835391044617, 78.72340425531915
99749 - Loss: 0.34729793667793274, 78.72340425531915
99750 - Loss: 0.3472974896430969, 78.72340425531915
99751 - Loss: 0.3472970426082611, 78.72340425531915
99752 - Loss: 0.3472965955734253, 78.72340425531915
99753 - Loss: 0.34729623794555664, 78.72340425531915
99754 - Loss: 0.3472958207130432, 78.72340425531915
99755 - Loss: 0.3472953140735626, 78.72340425531915
99756 - Loss: 0.3472948968410492, 78.72340425531915
99757 - Loss: 0.3472944498062134, 78.72340425531915
99758 - Loss: 0.3472941517829895, 78.72340425531915
99759 - Loss: 0.3472936451435089, 78.72340425531915
99760 - Loss: 0.3472932279109955, 78.72340425531915
99761 - Loss: 0.3472927510738373, 78.72340425531915
99762 - Loss: 0.34729233384132385, 78.72340425531915
99763 - Loss: 0.34729188680648804, 78.72340425531915
99764 - Loss: 0.34729140996932983, 78.72340425531915
99765 - Loss: 0.3472910523414612, 78.72340425531915
99766 - Loss: 0.347290575504303, 78.72340425531915
99767 - Loss: 0.34729015827178955, 78.72340425531915
99768 - Loss: 0.3472897410392761, 78.72340425531915
99769 - Loss: 0.3472892642021179, 78.72340425531915
99770 - Loss: 0.34728890657424927, 78.72340425531915
99771 - Loss: 0.34728845953941345, 78.72340425531915
99772 - Loss: 0.3472880423069, 78.72340425531915
99773 - Loss: 0.3472875952720642, 78.72340425531915
99774 - Loss: 0.3472871780395508, 78.72340425531915
99775 - Loss: 0.34728676080703735, 78.72340425531915
99776 - Loss: 0.34728628396987915, 78.72340425531915
99777 - Loss: 0.3472858965396881, 78.72340425531915
99778 - Loss: 0.34728536009788513, 78.72340425531915
99779 - Loss: 0.3472849726676941, 78.72340425531915
99780 - Loss: 0.34728455543518066, 78.72340425531915
99781 - Loss: 0.34728413820266724, 78.72340425531915
99782 - Loss: 0.3472836911678314, 78.72340425531915
99783 - Loss: 0.347283273935318, 78.72340425531915
99784 - Loss: 0.3472828269004822, 78.72340425531915
99785 - Loss: 0.34728237986564636, 78.72340425531915
99786 - Loss: 0.3472819924354553, 78.72340425531915
99787 - Loss: 0.3472815752029419, 78.72340425531915
99788 - Loss: 0.34728115797042847, 78.72340425531915
99789 - Loss: 0.34728071093559265, 78.72340425531915
99790 - Loss: 0.34728020429611206, 78.72340425531915
99791 - Loss: 0.3472798466682434, 78.72340425531915
99792 - Loss: 0.34727945923805237, 78.72340425531915
99793 - Loss: 0.34727901220321655, 78.72340425531915
99794 - Loss: 0.3472785949707031, 78.72340425531915
99795 - Loss: 0.3472781181335449, 78.72340425531915
99796 - Loss: 0.3472777009010315, 78.72340425531915
99797 - Loss: 0.3472772240638733, 78.72340425531915
99798 - Loss: 0.34727683663368225, 78.72340425531915
99799 - Loss: 0.34727638959884644, 78.72340425531915
99800 - Loss: 0.3472760021686554, 78.72340425531915
99801 - Loss: 0.3472754955291748, 78.72340425531915
99802 - Loss: 0.3472750782966614, 78.72340425531915
99803 - Loss: 0.34727463126182556, 78.72340425531915
99804 - Loss: 0.3472742438316345, 78.72340425531915
99805 - Loss: 0.3472737967967987, 78.72340425531915
99806 - Loss: 0.34727340936660767, 78.72340425531915
99807 - Loss: 0.34727293252944946, 78.72340425531915
99808 - Loss: 0.34727251529693604, 78.72340425531915
99809 - Loss: 0.3472720980644226, 78.72340425531915
99810 - Loss: 0.3472716510295868, 78.72340425531915
99811 - Loss: 0.34727126359939575, 78.72340425531915
99812 - Loss: 0.34727078676223755, 78.72340425531915
99813 - Loss: 0.34727033972740173, 78.72340425531915
99814 - Loss: 0.3472698926925659, 78.72340425531915
99815 - Loss: 0.3472694754600525, 78.72340425531915
99816 - Loss: 0.34726905822753906, 78.72340425531915
99817 - Loss: 0.34726864099502563, 78.72340425531915
99818 - Loss: 0.3472682535648346, 78.72340425531915
99819 - Loss: 0.347267746925354, 78.72340425531915
99820 - Loss: 0.3472673296928406, 78.72340425531915
99821 - Loss: 0.3472669720649719, 78.72340425531915
99822 - Loss: 0.3472665250301361, 78.72340425531915
99823 - Loss: 0.3472661077976227, 78.72340425531915
99824 - Loss: 0.34726566076278687, 78.72340425531915
99825 - Loss: 0.34726518392562866, 78.72340425531915
99826 - Loss: 0.3472647964954376, 78.72340425531915
99827 - Loss: 0.3472643792629242, 78.72340425531915
99828 - Loss: 0.3472639322280884, 78.72340425531915
99829 - Loss: 0.34726348519325256, 78.72340425531915
99830 - Loss: 0.34726303815841675, 78.72340425531915
99831 - Loss: 0.34726256132125854, 78.72340425531915
99832 - Loss: 0.3472622036933899, 78.72340425531915
99833 - Loss: 0.34726178646087646, 78.72340425531915
99834 - Loss: 0.34726130962371826, 78.72340425531915
99835 - Loss: 0.347260981798172, 78.72340425531915
99836 - Loss: 0.3472604751586914, 78.72340425531915
99837 - Loss: 0.347260057926178, 78.72340425531915
99838 - Loss: 0.3472595810890198, 78.72340425531915
99839 - Loss: 0.34725919365882874, 78.72340425531915
99840 - Loss: 0.34725871682167053, 78.72340425531915
99841 - Loss: 0.3472583293914795, 78.72340425531915
99842 - Loss: 0.34725791215896606, 78.72340425531915
99843 - Loss: 0.34725743532180786, 78.72340425531915
99844 - Loss: 0.3472570478916168, 78.72340425531915
99845 - Loss: 0.347256600856781, 78.72340425531915
99846 - Loss: 0.34725621342658997, 78.72340425531915
99847 - Loss: 0.34725576639175415, 78.72340425531915
99848 - Loss: 0.3472553491592407, 78.72340425531915
99849 - Loss: 0.3472549319267273, 78.72340425531915
99850 - Loss: 0.3472544550895691, 78.72340425531915
99851 - Loss: 0.34725403785705566, 78.72340425531915
99852 - Loss: 0.34725356101989746, 78.72340425531915
99853 - Loss: 0.3472531735897064, 78.72340425531915
99854 - Loss: 0.3472527265548706, 78.72340425531915
99855 - Loss: 0.3472522795200348, 78.72340425531915
99856 - Loss: 0.347251832485199, 78.72340425531915
99857 - Loss: 0.34725141525268555, 78.72340425531915
99858 - Loss: 0.3472509980201721, 78.72340425531915
99859 - Loss: 0.3472505509853363, 78.72340425531915
99860 - Loss: 0.34725016355514526, 78.72340425531915
99861 - Loss: 0.34724968671798706, 78.72340425531915
99862 - Loss: 0.34724926948547363, 78.72340425531915
99863 - Loss: 0.3472488522529602, 78.72340425531915
99864 - Loss: 0.3472484052181244, 78.72340425531915
99865 - Loss: 0.34724804759025574, 78.72340425531915
99866 - Loss: 0.34724754095077515, 78.72340425531915
99867 - Loss: 0.3472471237182617, 78.72340425531915
99868 - Loss: 0.3472467362880707, 78.72340425531915
99869 - Loss: 0.34724631905555725, 78.72340425531915
99870 - Loss: 0.34724587202072144, 78.72340425531915
99871 - Loss: 0.34724539518356323, 78.72340425531915
99872 - Loss: 0.3472449779510498, 78.72340425531915
99873 - Loss: 0.3472445607185364, 78.72340425531915
99874 - Loss: 0.3472440838813782, 78.72340425531915
99875 - Loss: 0.34724369645118713, 78.72340425531915
99876 - Loss: 0.34724321961402893, 78.72340425531915
99877 - Loss: 0.3472428619861603, 78.72340425531915
99878 - Loss: 0.34724241495132446, 78.72340425531915
99879 - Loss: 0.34724196791648865, 78.72340425531915
99880 - Loss: 0.3472415506839752, 78.72340425531915
99881 - Loss: 0.3472411334514618, 78.72340425531915
99882 - Loss: 0.34724071621894836, 78.72340425531915
99883 - Loss: 0.34724023938179016, 78.72340425531915
99884 - Loss: 0.3472398519515991, 78.72340425531915
99885 - Loss: 0.3472393751144409, 78.72340425531915
99886 - Loss: 0.3472389280796051, 78.72340425531915
99887 - Loss: 0.3472385108470917, 78.72340425531915
99888 - Loss: 0.34723812341690063, 78.72340425531915
99889 - Loss: 0.3472377359867096, 78.72340425531915
99890 - Loss: 0.347237229347229, 78.72340425531915
99891 - Loss: 0.34723684191703796, 78.72340425531915
99892 - Loss: 0.34723639488220215, 78.72340425531915
99893 - Loss: 0.3472359776496887, 78.72340425531915
99894 - Loss: 0.3472355306148529, 78.72340425531915
99895 - Loss: 0.3472351133823395, 78.72340425531915
99896 - Loss: 0.34723466634750366, 78.72340425531915
99897 - Loss: 0.34723424911499023, 78.72340425531915
99898 - Loss: 0.3472338020801544, 78.72340425531915
99899 - Loss: 0.3472333550453186, 78.72340425531915
99900 - Loss: 0.34723299741744995, 78.72340425531915
99901 - Loss: 0.34723252058029175, 78.72340425531915
99902 - Loss: 0.34723204374313354, 78.72340425531915
99903 - Loss: 0.3472316265106201, 78.72340425531915
99904 - Loss: 0.3472312092781067, 78.72340425531915
99905 - Loss: 0.34723085165023804, 78.72340425531915
99906 - Loss: 0.34723037481307983, 78.72340425531915
99907 - Loss: 0.347229927778244, 78.72340425531915
99908 - Loss: 0.347229540348053, 78.72340425531915
99909 - Loss: 0.3472290635108948, 78.72340425531915
99910 - Loss: 0.34722861647605896, 78.72340425531915
99911 - Loss: 0.34722819924354553, 78.72340425531915
99912 - Loss: 0.3472277522087097, 78.72340425531915
99913 - Loss: 0.3472273051738739, 78.72340425531915
99914 - Loss: 0.3472268879413605, 78.72340425531915
99915 - Loss: 0.34722650051116943, 78.72340425531915
99916 - Loss: 0.347226083278656, 78.72340425531915
99917 - Loss: 0.3472255766391754, 78.72340425531915
99918 - Loss: 0.34722521901130676, 78.72340425531915
99919 - Loss: 0.34722477197647095, 78.72340425531915
99920 - Loss: 0.3472243547439575, 78.72340425531915
99921 - Loss: 0.3472239375114441, 78.72340425531915
99922 - Loss: 0.34722352027893066, 78.72340425531915
99923 - Loss: 0.34722307324409485, 78.72340425531915
99924 - Loss: 0.34722262620925903, 78.72340425531915
99925 - Loss: 0.3472221791744232, 78.72340425531915
99926 - Loss: 0.3472217619419098, 78.72340425531915
99927 - Loss: 0.34722137451171875, 78.72340425531915
99928 - Loss: 0.34722092747688293, 78.72340425531915
99929 - Loss: 0.3472205102443695, 78.72340425531915
99930 - Loss: 0.3472200930118561, 78.72340425531915
99931 - Loss: 0.3472195863723755, 78.72340425531915
99932 - Loss: 0.34721916913986206, 78.72340425531915
99933 - Loss: 0.34721875190734863, 78.72340425531915
99934 - Loss: 0.3472183346748352, 78.72340425531915
99935 - Loss: 0.3472178876399994, 78.72340425531915
99936 - Loss: 0.34721747040748596, 78.72340425531915
99937 - Loss: 0.34721702337265015, 78.72340425531915
99938 - Loss: 0.34721654653549194, 78.72340425531915
99939 - Loss: 0.3472161293029785, 78.72340425531915
99940 - Loss: 0.3472157120704651, 78.72340425531915
99941 - Loss: 0.34721532464027405, 78.72340425531915
99942 - Loss: 0.34721481800079346, 78.72340425531915
99943 - Loss: 0.3472144305706024, 78.72340425531915
99944 - Loss: 0.347214013338089, 78.72340425531915
99945 - Loss: 0.3472135663032532, 78.72340425531915
99946 - Loss: 0.3472132086753845, 78.72340425531915
99947 - Loss: 0.3472127318382263, 78.72340425531915
99948 - Loss: 0.3472122848033905, 78.72340425531915
99949 - Loss: 0.34721189737319946, 78.72340425531915
99950 - Loss: 0.34721142053604126, 78.72340425531915
99951 - Loss: 0.34721100330352783, 78.72340425531915
99952 - Loss: 0.3472105860710144, 78.72340425531915
99953 - Loss: 0.347210168838501, 78.72340425531915
99954 - Loss: 0.34720975160598755, 78.72340425531915
99955 - Loss: 0.34720927476882935, 78.72340425531915
99956 - Loss: 0.34720882773399353, 78.72340425531915
99957 - Loss: 0.3472084403038025, 78.72340425531915
99958 - Loss: 0.34720802307128906, 78.72340425531915
99959 - Loss: 0.34720760583877563, 78.72340425531915
99960 - Loss: 0.34720712900161743, 78.72340425531915
99961 - Loss: 0.3472066819667816, 78.72340425531915
99962 - Loss: 0.3472062945365906, 78.72340425531915
99963 - Loss: 0.34720587730407715, 78.72340425531915
99964 - Loss: 0.3472054600715637, 78.72340425531915
99965 - Loss: 0.3472050130367279, 78.72340425531915
99966 - Loss: 0.3472045660018921, 78.72340425531915
99967 - Loss: 0.34720414876937866, 78.72340425531915
99968 - Loss: 0.34720373153686523, 78.72340425531915
99969 - Loss: 0.3472033143043518, 78.72340425531915
99970 - Loss: 0.3472028374671936, 78.72340425531915
99971 - Loss: 0.34720245003700256, 78.72340425531915
99972 - Loss: 0.34720200300216675, 78.72340425531915
99973 - Loss: 0.34720155596733093, 78.72340425531915
99974 - Loss: 0.3472011685371399, 78.72340425531915
99975 - Loss: 0.3472006916999817, 78.72340425531915
99976 - Loss: 0.3472002446651459, 78.72340425531915
99977 - Loss: 0.34719985723495483, 78.72340425531915
99978 - Loss: 0.347199410200119, 78.72340425531915
99979 - Loss: 0.3471989631652832, 78.72340425531915
99980 - Loss: 0.3471985459327698, 78.72340425531915
99981 - Loss: 0.34719815850257874, 78.72340425531915
99982 - Loss: 0.34719768166542053, 78.72340425531915
99983 - Loss: 0.3471972644329071, 78.72340425531915
99984 - Loss: 0.3471968173980713, 78.72340425531915
99985 - Loss: 0.34719642996788025, 78.72340425531915
99986 - Loss: 0.3471960425376892, 78.72340425531915
99987 - Loss: 0.347195565700531, 78.72340425531915
99988 - Loss: 0.3471951484680176, 78.72340425531915
99989 - Loss: 0.34719470143318176, 78.72340425531915
99990 - Loss: 0.34719425439834595, 78.72340425531915
99991 - Loss: 0.3471938371658325, 78.72340425531915
99992 - Loss: 0.3471933901309967, 78.72340425531915
99993 - Loss: 0.3471929430961609, 78.72340425531915
99994 - Loss: 0.34719252586364746, 78.72340425531915
99995 - Loss: 0.34719210863113403, 78.72340425531915
99996 - Loss: 0.3471916615962982, 78.72340425531915
99997 - Loss: 0.3471912443637848, 78.72340425531915
99998 - Loss: 0.347190797328949, 78.72340425531915
99999 - Loss: 0.34719038009643555, 78.72340425531915
100000 - Loss: 0.3471899628639221, 78.72340425531915
#Nx.Tensor<
  f32[61][2]
  EXLA.Backend
  [
    [1.7620571851730347, -1.7620567083358765],
    [-1.2212328910827637, 1.2212327718734741],
    [-1.4051320552825928, 1.4051320552825928],
    [-0.7617281675338745, 0.7617281675338745],
    [-2.203519105911255, 2.203519105911255],
    [-1.4716229438781738, 1.4716224670410156],
    [0.47121602296829224, -0.47121602296829224],
    [1.2278388738632202, -1.2278385162353516],
    [1.8315479755401611, -1.8315479755401611],
    [-1.6977713108062744, 1.6977708339691162],
    [-1.6527485847473145, 1.6527485847473145],
    [-3.0582785606384277, 3.058279037475586],
    [-2.472179889678955, 2.472180128097534],
    [-1.2199965715408325, 1.2199959754943848],
    [0.6713770627975464, -0.6713771224021912],
    [1.1136888265609741, -1.1136888265609741],
    [1.4667856693267822, -1.4667855501174927],
    [0.10807175934314728, -0.10807185620069504],
    [0.2797262370586395, -0.2797263562679291],
    [0.3058620095252991, -0.3058619797229767],
    [-0.3211183547973633, 0.3211185336112976],
    [-1.2587522268295288, 1.258752465248108],
    [-1.427368402481079, 1.427367925643921],
    [0.12842321395874023, -0.12842316925525665],
    [-1.1204497814178467, 1.1204497814178467],
    ...
  ]
>

Conclusion

With 100,000 iterations and learning rate of 0.01, the classifier can achieve a 78.72% accuracy