Помощь новичкам

Перепроверил, вроде всё правильно. Вот оригинальный код:

private void Init(int num_neurons, int inputDepth, int inputWidth, int inputHeight, float l1_decay, float l2_decay, float bais_pref)
        {
            this.OutputDepth = num_neurons;

            this.InputHeight = inputHeight;
            this.InputWidth = inputWidth;
            this.InputDepth = inputDepth;

            this.L1_Decay_Mul = l1_decay;
            this.L2_Decay_Mul = l2_decay;

            this.num_inputs = inputWidth * inputHeight * inputDepth;
            this.OutputWidth = 1;
            this.OutputHeight = 1;


            var bais = bais_pref;
            this.Filters = new Vol[this.OutputDepth];
            for (int i = 0; i < this.OutputDepth; i++)
            {
                this.Filters[i] = (new Vol(1, 1, this.num_inputs));
            }

            this.Biases = new Vol(1, 1, this.OutputDepth, bais);
        }

Мой вариант полностью повторяет сишный; по строчкам переводил. При этом, работа оригинальной библиотеки никаких вопросов не вызывает. Может быть, всё дело в том, что оригинал-dll, а моя-модуль?

Проводите построчную отладку, проверяйте где различия в том сколько оперативки потрачено.

Кстати вместо this в паскале self.

1 лайк

Попробую. А за self-отдельное спасибо!

Переделал под self, но ошибка осталась.

Можете пожалуйста рассказать как работают эвенты?

Вопрос появился. Есть модуль и код в котором используется модуль. В общем есть необходимость редактировать и код и модуль одновременно и после этого запускать. Есть возможность запускать программу, не перекидывая постоянно модуль в папку lib и libsourse.

Конечно, просто держите модуль и то к чему он подключён в 1 папке.

2 лайка

Не подскажите как избавиться от выделения текста белой полосой? Для вывода текста использую writeln()

Установите прозрачный цвет кисти: GraphABC.SetBrushColor(Color.FromArgb($00000000));.

1 лайк

Вы не знаете как центрировать строку в окне, ну или хотя бы сколько пикселей 1 символ.

Авто центрирования в GraphABC, вроде, нету. Шрифты делятся на моноширинные и нет. У моноширинных все символы одинаковой ширины, это не очень красиво, но удобно в некоторых случаях, как программирование (при перемещении курсора вверх-вниз он не двигается вбок). Шрифт по умолчанию не моноширинный. Изменить какой шрифт используется можно через GraphABC.SetFontName (имена шрифтом можно искать в вёрде и в Панель управления\Все элементы панели управления\Шрифты). Получить размеры текста можно через GraphABC.GraphWindowGraphics.MeasureString и GraphABC.GraphWindowGraphics.MeasureCharacterRanges. Для обоих процедур понадобится переменная установленного сейчас шрифта которую можно получить из GraphABC.Font.NETFont.

1 лайк

А ещё есть стандартные функции:

function TextWidth(s: string): integer; 
        Возвращает ширину строки s в пикселях при текущих настройках шрифта  
function TextHeight(s: string): integer; 
        Возвращает высоту строки s в пикселях при текущих настройках шрифта

Здравствуйте! Как можно заменить операторы >> и << в Паскале? Или они здесь уже есть?:smile:

Нет, нету. Я бы использовал ., то есть cout.wr('abc').wr(123).

Я Вас не понял. Это оператор для int.

А, я думал вы про оператор для записи/считывания потока. Побитовые сдвиги в паскале это shl(влево) и shr(вправо).

1 лайк

Сишный извращенец…:stuck_out_tongue_winking_eye:

1 лайк

Я не это имел ввиду! Это не я! :scream:

А это и не Вам

О, спасибо! Может, предложить Админам добавить соответствующий операторы?