feather-a10g-large-runtime / overlay /tests /test_htm_eval_no_learn.py
icarus112's picture
Update Feather a10g-large training runtime image
c475135 verified
from __future__ import annotations
import os
from subsystems.htm import HTMLayer, _resolve_use_gpu
def _bare_layer(*, learn=True, training=True, learn_every=1):
layer = HTMLayer.__new__(HTMLayer)
layer.learn = learn
layer.learning_enabled = True
layer._learn_every = learn_every
layer._forward_counter = 0
layer.training = training
return layer
def test_htm_learn_flag_requires_training_and_learning_enabled():
layer = _bare_layer(training=True)
assert layer._next_learn_flag() is True
layer.training = False
assert layer._next_learn_flag() is False
layer.training = True
layer.learning_enabled = False
assert layer._next_learn_flag() is False
def test_htm_forward_async_uses_same_learn_gate_as_forward():
layer = _bare_layer(training=True, learn_every=3)
assert layer._next_learn_flag() is False
assert layer._next_learn_flag() is False
assert layer._next_learn_flag() is True
layer.training = False
assert layer._next_learn_flag() is False
def test_htm_use_gpu_env_can_force_cpu_even_if_cuda_available(monkeypatch):
monkeypatch.setenv("HYDRA_HTM_USE_GPU", "0")
assert _resolve_use_gpu(True, cuda_available=True) is False