Как я понял, он просто пытается сохранять в стеке xmm-регистры.
movaps
делает наоборот. Она загружает значения из памяти в векторный регистр.alignas
при объявлении объекта вектора на стеке?alignas
, поэтому пробуй выровнять конкретный объект на стеке. alignas
. Выравнивание у такого вектора будет на 4Б. std::vector
вместо голых массивов. Голый массив не дает о себе никакой информации.struct Layer final
{
std::vector<double> neurons;
std::vector<double> biases;
std::vector<double> weights;
size_t size = 0;
szie_t next_size = 0;
Layer() = default;
Layer( int size,int nextSize );
double& AccessWeight(const size_t x, const size_t y);
const double GetWeight(const size_t x, const size_t y) const;
};
class
если ты не пользуешься областями видимости. Тебе не нужен struct
если ты областями видимости пользуешься. double** weights
? Хранить веса в массиве массивов - это крайне неэффективно для работы нейросети. У тебя строки весов могут быть разного размера?layers[k].weights = weightsNew;
, перед которым идет delete[]layers[k].weights;
, а где у тебя удаляются строки layers[k].weights
, что ранее были выделены в этом цикле?for (int i = 0; i < left->size; i++) {
weightsNew[i] = new double[right->size];
}
std::wstring wcharacter;
wcharacter.push_back( character );
std::wstring
является wchar_t
. Зачем тебе конвертер из utf-8? Ты можешь просто выполнить std::wstring wcharacter = character
. case
внутри switch
используются как метки, на которые переводится исполнение кода по результатам операции в скобках switch
. На default
исполнение прыгает только тогда, когда результат операции в switch
не удается сопоставить ни с одной меткой case
. [Д]case
или default
исполнение идет по всему коду пока не встретит break
, return
или пока код не кончится. Проверка условия и выбор метки для прыжка делается только во время вычисления операции switch
, после прыжка на метку исполнение больше не различает никаких меток и идет до конца кода.
MSS в UDP, кстати, 1.4КБ (1436Б в среднем роутере). Все что больше этого размера, на роутере подвергнется или фрагментации, или шейпингу. Оба варианта приведут к проблемам. Некоторые роутеры при шейпинге просто забывают дослать все, что превысило MSS.
Не допускай превышения MSS.