Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ if(TINYML_BUILD_EXTENDED)
endif()

include(FetchContent)
set(XSIMD_SKIP_INSTALL ON CACHE BOOL "" FORCE)
set(XSIMD_SKIP_INSTALL OFF CACHE BOOL "" FORCE)
FetchContent_Declare(
xsimd
URL https://github.com/xtensor-stack/xsimd/archive/refs/tags/12.1.1.tar.gz
Expand Down
11 changes: 5 additions & 6 deletions src/GenerativeModels.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ void VAE::decoder_forward(const LatentVector& latent, const Tensor& condition,
for (size_t i = 0; i < config_.input_dim; ++i) {
float sum = decoder_b2_[i];
for (size_t j = 0; j < config_.hidden_dim; ++j) {
sum += hidden[j] * decoder_w2_[j * config_.hidden_dim + i];
sum += hidden[j] * decoder_w2_[j * config_.input_dim + i];
}
output[i] = std::tanh(sum);
}
Expand Down Expand Up @@ -394,7 +394,7 @@ std::vector<Tensor> VAE::get_activations(const Tensor& input) {
for (size_t i = 0; i < config_.input_dim; ++i) {
float sum = decoder_b2_[i];
for (size_t j = 0; j < config_.hidden_dim; ++j) {
sum += dec_hidden[j] * decoder_w2_[j * config_.hidden_dim + i];
sum += dec_hidden[j] * decoder_w2_[j * config_.input_dim + i];
}
output[i] = std::tanh(sum);
}
Expand Down Expand Up @@ -427,7 +427,7 @@ std::vector<Tensor> VAE::get_decoder_activations(const LatentVector& latent) {
for (size_t i = 0; i < config_.input_dim; ++i) {
float sum = decoder_b2_[i];
for (size_t j = 0; j < config_.hidden_dim; ++j) {
sum += dec_hidden[j] * decoder_w2_[j * config_.hidden_dim + i];
sum += dec_hidden[j] * decoder_w2_[j * config_.input_dim + i];
}
output[i] = std::tanh(sum);
}
Expand Down Expand Up @@ -589,7 +589,7 @@ void GAN::generator_forward(const Tensor& noise, const Tensor& condition, Tensor
for (size_t i = 0; i < config_.input_dim; ++i) {
float sum = gen_b3_[i];
for (size_t j = 0; j < config_.hidden_dim; ++j) {
sum += hidden2[j] * gen_w3_[j * config_.hidden_dim + i];
sum += hidden2[j] * gen_w3_[j * config_.input_dim + i];
}
output[i] = std::tanh(sum);
}
Expand Down Expand Up @@ -836,7 +836,7 @@ void DiffusionModel::unet_forward(const Tensor& xt, const Tensor& time_emb,
for (size_t i = 0; i < config_.input_dim; ++i) {
float sum = noise_b3_[i];
for (size_t j = 0; j < config_.hidden_dim; ++j) {
sum += hidden2[j] * noise_w3_[j * config_.hidden_dim + i];
sum += hidden2[j] * noise_w3_[j * config_.input_dim + i];
}
epsilon_pred[i] = sum;
}
Expand All @@ -861,7 +861,6 @@ void DiffusionModel::forward_diffusion(const Tensor& x0, int t, Tensor& xt, Tens
void DiffusionModel::predict_noise(const Tensor& xt, int t, const Tensor& condition, Tensor& epsilon_pred) {
Tensor time_emb;
time_embedding(t, time_emb);

unet_forward(xt, time_emb, condition, epsilon_pred);
}

Expand Down