Elixir video card: JIT/GPU accelerated deep learning for Elixir with Axon v0.1 – Sean Moriarity

JIT/GPU accelerated deep learning for Elixir with Axon v0.1 – Sean Moriarity

I am excited to announce the official v0.1.0 release of Axon and AxonOnnx. A lot has changed (and improved) since the initial public announcement of Axon. In this post I will explore Axon and its internals, and give reasoning for some of the design decisions made along the way.

You can view the official documentation here:

  • Axon
  • AxonOnnx

What is Axon?

At a high-level, Axon is a library for creating and training neural networks. Axon is implemented in pure Elixir and relies on Nx to compile Neural Networks to the CPU/GPU just-in-time. It consists of a few components which are loosely tied together:

Functional API

The functional API are “low-level” implementations of common neural network operations. It’s similar to torch.functional or tf.nn in the Python ecosystem. The functional API offers no conveniences—just implementations. These implementations are all written in defn, so they can be JIT compiled, or composed with Nx transformations like grad in other defn functions.

The Functional API consists of:

  • Axon.Activations
  • Axon.Initializers
  • Axon.Layers
  • Axon.Losses
  • Axon.Metrics
  • Axon.Recurrent

Model Creation API

The model creation API is a high-level API for creating and executing neural networks. The API will be covered in-depth in this post, so I’ll omit the details here.

Optimization API

The optimization API is built to mirror the beautiful Optax library. Optax is literally my favorite library that’s not written in Elixir. The idea is to implement optimizers using composable higher-order functions. I highly recommend checking out the Axon.Updates documentation as well as the Optax library.

Loop API

The Loop API is an API for writing loops (like training and evaluation loops) in a functional style. Elixir is a functional language, which means we cannot take advantage of mutable state in the same way you would be able to in Python frameworks. To get around this, Axon.Loop constructs loops as reducers over data with some state. The API itself is inspired by the PyTorch Ignite library.

The Loop API is still a work-in-progress, so you should expect significant improvements in subsequent Axon releases.

What really is a Neural Network?

There are really two interpretations of this question I’d like to explore:

  1. What is a neural network mathematically?
  2. What is a neural network in the eyes of Axon?

Mathematically a neural network is just a composition of linear and non-linear transformations with some learnable parameters. In Nx, you can implement a neural network relatively easily with defn:

defn feed_forward_network(x, w1, b1, w2, b2, w3, b3) do
  x
  |> Nx.dot(w1)
  |> Nx.add(b1)
  |> Nx. sigmoid()
  |> Nx.dot(w2)
  |> Nx.add(b2)
  |> Nx.sigmoid()
  |> Nx.dot(w3)
  |> Nx.add(b3)
  |> Nx.sigmoid()
end

There’s really nothing more to it! Of course, implementing neural networks in Nx now introduces a lot of painful boilerplate. The goal of Axon is to abstract away the boilerplate, and make creating and training neural networks a breeze in Elixir.

So what is a neural network in the eyes of Axon? Axon sees a neural network as an Elixir struct:

  defstruct [
    :id,
    :name,
    :output_shape,
    :parent,
    :parameters,
    :args,
    :op,
    :policy,
    :hooks,
    :opts,
    :op_name
  ]

Of particular importance in this struct are: parentparameters, and opparent is a list of parent networks which are also Axon structs. It’s a recursive data structure which represents a computation graph with some additional metadata relevant to specific neural network tasks.  parameters represent a list of trainable parameters attached to this layer. They’re automatically initialized when the model is initialized, and will be part of the training process within Axon’s internal APIs. op is a function that’s applied on parent and parameters. In laymen’s terms, Axon views a neural network as just a function of other “neural networks” (Axon structs) and trainable parameters. In fact, you can “wrap” any function you want into a neural network with Axon.layer:

defn dense(input, weight, bias, _opts \\ []) do
  input
  |> Nx.dot(weight)
  |> Nx.add(bias)
end
input = Axon.input({nil, 32}, "features")
weight = Axon.param({32, 64}, "weight")
bias = Axon.param({64}, "bias")
Axon.layer(&dense/4, [input, weight, bias])

Notice I only had to define an input layer and two trainable parameters using Axon’s built-in function. Using Axon.layer should feel a lot like using Elixir’s apply — you’re just applying a function to some specialized inputs. All but a few of Axon’s built-in layers are implemented in essentially this same manner:

  1. Define an implementation function in Axon.Layers
  2. Wrap the implementation in a layer with a public interface in Axon

It’s just a Graph

The “magic” of Axon is its compiler, which knows how to convert Axon structs into meaningful initialization and prediction functions. Model execution comes in the form of two functions: Axon.init/3 and Axon.predict/4Axon.init/3 returns a model’s initial parameters:

model = Axon.input({nil, 32}) |> Axon.dense(64)
model_state = Axon.init(model)

For prediction, you need both a model and a compatible model state:

model = Axon.input({nil, 32}) |> Axon.dense(64)
model_state = Axon.init(model)
input = Nx.random_uniform({1, 32})
Axon.predict(model, model_state, input)

Both Axon.init/3 and Axon.predict/4 take additional compilation options; however, it’s recommended you use global configuration rather than compilation options. For example, rather than:

Axon.predict(model, model_state, input, compiler: EXLA)

You should use:

EXLA.set_as_nx_default([:tpu, :cuda, :rocm, :host])
Axon.predict(model, model_state, input)

Axon.init/3 also optionally accepts initial parameters to initialize portions of a model from an initial state (e.g. if trying to fine-tune a model). This is where Axon.namespace/2 comes in handy. You can “tag” a part of a model as belonging to a particular namespace, and initialize without needing to know anything about the underlying architecture:

{bert, bert_params} = get_bert_model()
bert = bert |> Axon.namespace("bert")
model = bert |> Axon.dense(1)
model_state = Axon.init(model, %{"bert" => bert_params})

Axon.namespace/2 is one of the few layers with special meaning in Axon. There’s also Axon.input/2Axon.constant/3, and Axon.container/3. Input layers are symbolic representations of model inputs. Each input is associated with a unique name used to reference it when passing names to a model. For example, if you have multiple inputs, you can give them semantic meanings:

text_features = Axon.input({nil, 32}, "text_features")
cat_features = Axon.input({nil, 32}, "cat_features")

With named inputs, you don’t have to worry about passing things out of order, since you’ll always reference an input by it’s name:

model = Axon.add(text_features, cat_features)
Axon.predict(model, model_state, %{"text_features" => text_inp, "cat_features" => cat_inp})

Axon.constant/3 allows you to introduce constant-values into the graph. Be warned that introducing large constants will have negative impacts on the performance of the model.

Axon.container/3 can accept any valid Nx container. This is particularly useful for giving semantic meaning to outputs:

model = Axon.container(%{
  last_hidden_state: last_hidden_state,
  pooler_output: pooler_output
})

Every other Axon built-in layer is treated in the same way as custom layers by the compiler.  This means that (besides for the few “special layers”) there’s no difference between what you can do with a custom layer and what you can do with a built-in layer. They’re both handled by the same clause in the Axon compiler.

In the Axon interpretation of a neural network, every execution of a graph is seen as a specialized compilation of the graph. In other words, initialization and prediction are just two types of compilation. There’s nothing stopping you from implementing your own specialized compilation of an Axon graph in the same way. For example, an older version of Axon implemented a macro Axon.penalty which compiled a graph into a regularization function. Axon also implements the Inspect protocol—which itself can be seen as a symbolic compilation of the graph.

Maybe you don’t like my API…

The Axon interpretation of a “model” is intentionally as flexible as possible. All you need to do is build a data structure. This means that if you’re not satisfied with Axon’s model creation API, you can create your own! As long as you finish with an Axon struct, your model will work with the rest of Axon’s components. The Axon struct is really the unifying data structure for every component of the Axon library. I would love to see some cool Neural Network DSLs pop-up which build off of the lower-level components Axon defines.

Converting to Other Formats

Another benefit of the Axon data structure is portability. If you can traverse the Axon graph, you can lower or compile it into a meaningful function or representation, such as ONNX. This is exactly the functionality AxonOnnx provides—you can take a pre-trained model from popular frameworks like PyTorch and TensorFlow, convert them to ONNX, and then import them into Elixir with AxonOnnx.import. For example, you can take any of the ONNX supported models in HuggingFace Transformers and import them in Axon with ease!

Just export the model you want:

$ python -m transformers. onnx --model=bert-base-cased models/

And load it with AxonOnnx:

{bert, bert_params} = AxonOnnx.import("path/to/bert.onnx")

The ability to import and use external models is an absolute must for any Neural network library (especially given the pace of progress in deep learning). AxonOnnx enables Elixir programmers to utilize pre-trained models from the Python ecosystem without needing to implement or train them from scratch.

This also means you can integrate some pretty cool pre-trained models with established projects like Phoenix and LiveView. For example live_onnx, implements a sample ML application using AxonOnnx and LiveView.

You should note that we are still actively working to enable support for all of ONNX’s operations. If you have a model you’d like to see supported, please feel free to open an issue or a PR 🙂

Future Work

If you look at the issues tracker you’ll notice there’s still much work to be done; however, the core components of Axon are at a stable point. This means you can use Axon with a reasonable expectation of stability. Moving forward, you can expect the following from Axon:

  • First-class transformer model support
  • More integration with Livebook
  • Mixed precision training
  • Multi-device training

Additionally, I’d like to build out a large collection of Axon examples. If you are looking for a place to get started in the Nx ecosystem, please feel free to open a pull request which demonstrates Axon applied to a unique problem set. If you’re looking for inspiration, check out Keras Examples.

Acknowledgements

I am very grateful to DockYard and their support of the Elixir Machine Learning Ecosystem from the beginning. Additionally, Axon would not be where it is today without the hard work of all of the Nx contributors and the individuals Erlang Ecosystem Foundation ML WG. The Elixir community is nothing short of amazing, and I hope Axon can play a small part in seeing the community grow.

Like this:

Like Loading…

Elixir System Requirements — Can I Run It?

Elixir recommended requirements

Unknown recommended system requitements

Elixir minimum requirements

  • Memory: 1 GB
  • Graphics Card: NVIDIA GeForce GTX 560
  • CPU: Intel Core 2 Duo Q6867
  • File Size: 2 GB
  • OS: Windows 10 x64

Can you run it? Test your computer against Elixir system requirements.

Can I Run It?
Test Your PC Automatically
Can I Run It?
Enter your system details

Can I Run Elixir?

To play Elixir you will need a minimum CPU equivalent to an Intel Core 2 Duo Q6867. The cheapest graphics card you can play it on is an NVIDIA GeForce GTX 560. Elixir system requirements state that you will need at least 1 GB of RAM. In terms of game file size, you will need at least 2 GB of free disk space available.

Elixir will run on PC system with Windows 10 x64 and upwards.

Looking for an upgrade? Try our easy to use Elixir set up guides to find the best, cheapest cards. Filter for Elixir graphics card comparison and CPU compare. We’ll help you find the best deal for the right gear to run the game.

Download

:

Via Steam

Developer

:

Moxu Projects

Publisher

:

Moxu Projects

Categories

:

Casual
Indie
Adventure

Elixir Release Date

:

Expected release late 2022

What is Elixir?

An old man in search of the Philosopher’s Stone stumbles upon an old house that changes his life. Craft potions, treat diseases, experiment, and discover the dark secrets behind the facade in this pixel-art sandbox puzzle game.

Looking for ready made system? We have 334 laptop computers in our database that can run Elixir.
We take over 104 gaming laptops under $1000.

Check our full compare laptops chart for the right systems or these best deals we’ve picked out below.

Latest Posts

  • FPS monitor: how to track your PC game frame rate with an FPS counter

    23rd of August 2022

class=»small-header»>

Call of Duty: Warzone 2 System Requirements

FIFA 23 System Requirements

GTA 5 System Requirements

Elden Ring System Requirements

Red Dead Redemption 2 System Requirements

Valorant System Requirements

Warhammer 40,000: Darktide System Requirements

Fortnite System Requirements

Cyberpunk 2077 System Requirements

God of War System Requirements

Call of Duty Modern Warfare 2 System Requirements

Minecraft System Requirements

CSGO System Requirements

Overwatch 2 System Requirements

Genshin Impact System Requirements

Football Manager 2023 System Requirements

Call of Duty: Warzone System Requirements

Victoria 3 System Requirements

STAR WARS: Squadrons System Requirements

The Sims 5 System Requirements

Masks, oils, serums for damaged hair

Filter by

View product list Cheapest at the top

kaup24. ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

7 10 / month
53 90

Add to cart

5/5

PICK UP TOMORROW

Anti-hair loss Vichy Dercos Aminexil…
nine0003

Type: Anti-hair loss, Moisturizing, Moisturizing

Type: Ampoules

Brand: Vichy

24 99

Add to cart

4.5/5

Olaplex No.6 Bond Sm…

Type: For dry hair, For curly hair, Heat protection, Nourishing, Nourishing, Nourishing, Hydrating

Type: Serums

Trademark: Olaplex

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

26 49

Add to cart

5/5

FAST DELIVERY

Intense action hair mask with keratin Hea. ..

Type: Firming, Heat Protection, Nourishing

Type: Masks

Brand: Health & Beauty

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

20 99

Add to cart

4.4/5

PICK UP TOMORROW

Olaplex No.0 Int…

Type: For dry hair, For oily hair, For curly hair, Heat protection, Nourishing, Moisturizing, Nourishing

Type: Serums

Trademark: Olaplex

24 99

Add to cart

4.6/5

Revitalizing hair shaping oil Olaple…

Type: For dry hair, Nourishing, Shine, Nourishing, Moisturizing, Heat protection, Strengthening

Type: Oils

Brand: Olaplex

kaup24. ee/en/t/parima-hinna-garantii-en’>

BEST PRICE
nine0003

15 26

Add to cart

5/5

PICK UP TOMORROW

Mask for damaged hair Alfaparf Milano Semi Di …

Type: Nourishing, Shining, Firming

Type: Masks

Brand: Alfaparf Milano

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

7 70 / month
57 99

Add to cart

PICK UP TOMORROW

Olaplex Best Of The Bond Builders makeup set…

Type: Nourishing

Type: Scrubs, Creams

Brand: Olaplex

30 90

Add to cart

5/5

FAST DELIVERY

KITOKO Oil Treatment Hair Oil, 115 ml
nine0003

Type: For dry hair, For curly hair, Heat protection, Everyday use, Moisturizing, Nourishing, Nourishing, Hydrating, Strengthening

Type: Oils, Serums

kaup24. ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

8 00 / month
60 59

Add to cart

5/5

PICK UP TOMORROW

Molecular Hair Restoration Leave-in Mask

Type: Everyday

Type: Masks

Brand: K18

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

22 41

Add to cart

4.7/5

PICK UP TOMORROW

Regenerating treatment for damaged hair…
nine0003

Type: For dry hair, Nourishing, Shiny, Moisturizing

Type: Serums

Brand: Olaplex

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

20 40

Add to cart

5/5

PICK UP TOMORROW

Capillary oil Sebastian Dark (95 ml)

Type: Shine, Nourishing, Firming

Type: Oils

Brand: Sebastian Professional

kaup24. ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

35 99

Add to cart

4.7/5

PICK UP TOMORROW

Intensive action ampoules against hair loss P…

Type: For hair loss

Type: Ampoules

Brand: WT Method

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

Add to cart

4.8/5

PICK UP TOMORROW

CHI Argan Oil silk complex with argan oil 15…

Type: Nourishing, Brightening, Nourishing, Moisturizing, High Temperature Protection, Nourishing

Type: Oils

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE
nine0003

8 00 / month
60 49

Add to cart

FAST DELIVERY

Kerastase Genesis 200 ml hair strengthening mask

Type: Anti-hair loss, Strengthening, Shine, Moisturizing, Nourishing

Type: Masks

Brand: Kérastase

kaup24. ee/en/t/parima-hinna-garantii-en’>
BEST PRICE
nine0003

25 49

Add to cart

5/5

PICK UP TOMORROW

Goldwell Rich Repair Intensive Hair Mask 60se…

Type: For dry hair, Strengthening, Moisturizing

Type: Masks

Brand: Goldwell

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

3 12
4 72

Add to cart

4.8/5

PICK UP TOMORROW

Hair mask Kallos Cosmetics Banana, 1000 ml

Type: Moisturizing, Nourishing, Brightening, Nourishing

Type: Masks

Brand: Kallos

kaup24. ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

31 49

Add to cart

PICK UP TOMORROW

Set against hair loss PLACEN FORMULA HP, ampoules…

Type: For hair loss

Type: Ampoules, Serums

Brand: WT-Methode

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

Add to cart

4.9/5

PICK UP TOMORROW

Chi Silk Infusion 15 ml

Type: Shine

Type: Serums

Brand: CHI

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

23 99

Add to cart

4.7/5

PICK UP TOMORROW

Royal ampoules with plant placenta against prolapse. ..

Type: For dry hair, High temperature protection, Anti hair loss, Everyday use, Nourishing, Shine, Moisturizing, Nourishing, Firming

Type: Ampoules, Serums

Brand: Cosmofarma

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

5 60 / month
42 60

Add to cart

PICK UP TOMORROW

Concentrate for hair loss Vichy Dercos Densi-Solu…

Type: Anti hair loss, Moisturizing, Volumising

Type: Serums

Brand: Vichy

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

14 99

Add to cart

PICK UP TOMORROW

Color blue Design: without stones, bead Length: adjustable. ..

Type: Brightening, Moisturizing, Nourishing

Type: Masks

Brand: Dr. Sea

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

35 49

Add to cart

4.7/5

PICK UP TOMORROW

Highly effective placenta hair ampoules WT-Me…

Type: For hair loss

Type: Ampoules

Brand: WT-Methode

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE
nine0003

31 99

Add to cart

5/5

FAST DELIVERY

Lotion to reduce the appearance of gray hair Elgon Gh-…

Type: Moisturizing, Firming

Type: Sprays

Brand: Elgon

kaup24. ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

25 49

Add to cart

5/5

PICK UP TOMORROW

Revitalizing hair oil Macadamia Healing O…

Type: For dry hair, Nourishing

Type: Oils

Brand: Macadamia

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

19 99

Add to cart

FAST DELIVERY

Anti-hair loss lotion Lakme K.therapy Active…
nine0003

Type: Anti-hair loss, Volumizing, Moisturizing

Type: Serums

Brand: Lakme

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

23 49

Add to cart

5/5

PICK UP TOMORROW

Farouk Chi Infra Moisturizing Hair Mask 946 ml

Type: Heat protection, Shine, Hydrating, Heat protection

Type: Masks

Brand: CHI

kaup24. ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

10 26

Add to cart

5/5

PICK UP TOMORROW

Spray for damaged hair Goldwell Rich Repair…

Type: For dry hair, Nourishing

Type: Serums

Brand: Goldwell

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

25 49

Add to cart

PICK UP TOMORROW

Spray for hair protection against UV rays Lakm…

Type: High Temperature Protection, Shine

Type: Sprays

Brand: Lakme

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE
nine0003

11 19
16 49

Add to cart

5/5

CHI Luxury Black Seed Oil Hair Renewal Elixir. ..

Type: Shine

Type: Serums

Brand: CHI

10 90
15 90

Add to cart

5/5

RICH P…
nine0003

Type: For dry hair, For everyday use, Nourishing, Shine, Nourishing, Moisturizing, Heat protection, Nourishing, Strengthening

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

28 49

Add to cart

PICK UP TOMORROW

Hair serum Vichy Dercos Kera-Solutions, 40 m…
nine0003

Type: Nourishing, For dry hair

Type: Serums

Brand: Vichy

5 30 / month
39 99

Add to cart

5/5

Keratin for hair «COCOCHOCO GOLD» 250ML

Type: For dry hair, For oily hair, For curly hair, Heat protection, Nourishing, Shine, Nourishing, Nourishing

Type: Serums

Brand: Cocochoco

11 90
15 90

Add to cart

An intensely hydrating & revitalizing mask for. ..

Type: For dry hair, Heat protection, Nourishing, Nourishing, Moisturizing, Nourishing, Strengthening

Type: Masks

Brand: RICH

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

27 08

Add to cart

5/5

PICK UP TOMORROW

Regenerating agent with natural silk СHI S…

Type: For dry hair, Nourishing, Shine

Type: Serums

Brand: CHI

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE
nine0003

20 40

Add to cart

PICK UP TOMORROW

Revitalizing hair mask Schwarzkopf Bonacur…

Type: Nourishing, Nourishing

Type: Masks

Brand: Schwarzkopf

kaup24. ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

24 90

Add to cart

PICK UP TOMORROW

Revitalizing capillary mask System Profession…

Type: For dry hair, Nourishing, Moisturizing

Type: Masks

Brand: Wella System Professional

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

18 60

Add to cart

5/5

PICK UP TOMORROW

Wella Professionals SP Care Luxe Chromo…
nine0003

Type: Heat Protection, Moisturizing, Nourishing, Nourishing, Shine

Type: Oils

Trademark: Wella

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

14 99

Add to cart

PICK UP TOMORROW

Mud Hair Mask Dr. Sea, 325 ml

Type: Anti-dandruff, Daily use

Type: Masks

Brand: Dr. Sea

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

14 22

Add to cart

5/5

PICK UP TOMORROW

Mask for colored hair Collistar Regenerating Lin…

Type: Heat protection, Shine

Type: Masks

Brand: Collistar

kaup24.ee/en/t/parima-hinna-garantii-en’>
BEST PRICE

11 59

Add to cart

5/5

PICK UP TOMORROW

CHI Luxury Black Seed Dry Oil Hair Dry Oil 8…

Type: For dry hair

Type: Oils

Brand: CHI

kaup24. ee/en/t/parima-hinna-garantii-en’>
BEST PRICE
nine0003

20 40

Add to cart

5/5

PICK UP TOMORROW

Hair mask L’Oreal Professionnel Serie Expert Ab…

Type: Nourishing, Brightening

Type: Masks

Brand: L’Oreal Professionnel

Olaplex: what is it and why should you use it?

Anyone who was at least once concerned about the condition of their hair and was looking for ways to restore them should have heard about Olaplex. Thanks to the efforts of two chemists, a unique molecule has been created that allows you to restore and strengthen damaged hair and its structure. main ingredient

Read more

Hair care in the cold season

As the seasons change, our lifestyle and clothes change, but just as we must change our regular hair care routine. Cold and dry weather prevails in autumn and winter, which is especially harmful to their condition — if you do not take proper action, your hair will lose b

Read more

How to remove the yellow tint of hair?

After lightening hair, we often encounter one unpleasant problem — their shade changing very quickly. Sometimes, after the first wash, the hair becomes yellowish or even copper, but you definitely don’t want to return to the hairdresser. This time we will discuss the main reasons for the change in tone.

Read more

INOAR professional hair cosmetics: what is worth buying?

For more than 20 years, the Brazilian company INOAR has been well known to those who are looking for high-quality and professional hair products. During this period, the brand has become recognizable in many countries of the world: these hair products are valued for continuous improvement and comprehensive

Read more

Shiny, silky hair not only attracts the attention of others, but also gives us more self-confidence. The impeccable condition of our hair depends, first of all, on ourselves — even very damaged hair can be restored to shine if high-quality, natural hair strengthening products are used. When caring for hair, each of us may face various problems, and sooner or later the question arises, what products can help for hair loss .

The problem of hair loss does not depend on age or gender, therefore, universal remedies for hair loss provide an opportunity for everyone without exception to return the previous volume of hair, and at the same time self-confidence. It is difficult to say which remedy for hair loss is the best, because the structure of each person’s hair can be different. But, despite this, the regular use of environmentally friendly, professional products for hair loss and brittleness helps to achieve tangible results. It remains only to understand which tool will benefit you. In choosing an effective remedy for hair loss, reviews and the experience of other people can help you.

Once you’ve decided on a hair loss product, you’ll want to find where you can get at the low price of . We invite you to visit the e-shop Kaup24.ee and get acquainted with the range of products offered here. Hair strengthening products Phytolium, Fitoval, Kerastase, hair loss products and many other options will give you the opportunity to enjoy healthy and shiny hair again . Those who want to restore volume and hair growth to hair, but do not have time to go shopping, will like the fact that effective hair strengthening products for hair loss for men, women and children can be purchased through internet without leaving home. All you have to do is choose the remedies for hair loss or other problems that torment you, and in the near future the product you have chosen will be delivered to your house . If you want to have shiny, silky hair, or are looking for a remedy for hair loss — come to us and choose what you need.

Thalgo Elixir, 30 ml, for women

The first marine treatment for absolutely perfect skin, inspired by Thalgo’s innovative research over 50 years. A marine serum infused with a unique combination of regenerative marine ingredients, with three powerful beauty molecules to create flawless skin in just one drop. nine0003

Prodige des oceans essence — Thalgo’s exclusive patented serum is formulated with over 60 marine micronutrients fortified with Adenosine, Hyaluronic Acid and light-reflecting microbeads to restore the four essential ingredients for flawless skin:

  • Even, smooth texture 912
  • Beautiful, perfect tone
  • Freshness and youth
  • Exceptional Shine

Filled with energy and life, the skin is restored to its natural radiance and vitality, it literally glows from the inside. nine0003

The infinite power of the ocean
Three billion years ago, terrestrial life originated in the ocean. Since then, these amazing creatures, living cells, have undergone multiple changes, creating an environment for the emergence of all the diversity of life on the planet. Our blood plasma surprisingly coincides in its composition with sea water. They are almost identical!

Thanks to perfect osmosis and unsurpassed bio-compatibility between our cells and sea water, marine trace elements have the unique ability to influence our metabolism and restore all body systems. nine0003

It is this cellular compatibility that inspired the THALGO Laboratories to create the exclusive 100% Marine Complex
Regenerating Marine Ingredients
…the exceptional power of nourishing marine ingredients and their unsurpassed regenerating properties make up Marine Serum.
Scientists at THALGO Lab have assembled the finest Marine Components that combine the power of the five oceans.

61 Active Marine Microelement in Marine Serum restores four essential components of flawless skin:

1. Complexion
5 minerals (zinc, calcium, potassium, sea salt) and 14 saturated fatty acids
Gradual renewal of the epidermis for a beautiful complexion.

2. Skin tone
Vitamin PP
Controls melanogenesis and enhances the protective properties of the skin for a perfectly even skin tone.

3. Energy
21 amino acids, 8 B vitamins, 7 minerals (manganese, magnesium, silicon, phosphorus, iron, iodine, boron) and 3 carbohydrates. nine1230 Boosts skin regeneration for a radiant, youthful appearance

4. Radiance
3 powerful antioxidant minerals (chromium, sulfur, copper) and polyphenols
Powerful skin detox for exceptional radiance.

At the heart of the Regenerative Marine Components complex, a powerful combination of 15 minerals and trace elements, 7 vitamins, 21 amino acids, 14 fatty acids, 3 carbohydrates and polyphenols creates an ideal habitat for cells, activates important skin biological functions and improves natural circulation. nine0003

Regenerating Marine Ingredients
This complex combines the best of five oceans — 61 micronutrients needed for tissue regeneration and skin beauty.
Marine Serum, exclusive to THALGO, is a complex of Regenerative Marine Ingredients fortified with three amazing beauty molecules for exceptional results and instantly flawless skin.
Adenosine intensively activates the vitality of cells — epidermal renewal, synthesis of dermal structural fibers — for an exceptional regeneration of the overall skin architecture: tone is perfect, the skin is supple and silky, the complexion is fresh and more radiant. nine0003

Result:

  • Hyaluronic acid increases skin turgor, and light-reflecting microparticles transform the appearance and texture of the skin. The face instantly looks smoother and radiant.
  • Just one drop of the Elixir of the Sea restores the beauty of your skin. Complexion, skin tone, energy and radiance.

The unparalleled sensuality of the sea
Laboratories THALGO has managed to preserve the life force of the ocean as much as possible.