• Многослойный перцептрон - как выполнить действия?

    @rPman
    input1..3 размерность N и output1..3 размерность M это вектора I и O соответственно, каждый со своей размерностью (в твоем примере одинаковая)
    размер скрытого слоя - K
    веса между input и скрытым слоем w1x это матрица A, размерность NxK
    веса между скрытым слоем и output w2x это матрица B, размерность KxM

    Формула
    sigmoid(I*A) получаем вектор H размерностью K
    следующий слой
    sigmoid(H*B) получаем вектор O размерностью M

    т.е. O = sigmoid(sigmoid(I*A)*B)

    входной и выходной вектора еще нормализуют
    Ответ написан
  • Может ли физ лицо создавать интернет-проекты?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Ты забыл указать страну в которой ты физ. лицо.
    У нас в Украине любой физик может это делать, а значит и ты можешь.
    Но, может быть, у тебя в Канаде другое законодательство, вот его и изучай.
    Ответ написан
    1 комментарий
  • Может ли физ лицо создавать интернет-проекты?

    Griboks
    @Griboks
    Может создавать любые проекты. По факту, всем на вас наплевать, пока вы не начнёте скрывать налоги или конкуренты на вас не донесут.
    Ответ написан
    Комментировать
  • C# и OutOfmemoryExtension - как перейти на полноценные 64х?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Фрагментация существует в самой памяти ОС, там вполне может не оказаться таких больших непрерывных блоков.
    Чтобы убедиться в том что приложение 64-битное, надо смотреть флаги в его PE-заголовке. Или на худой конец в диспетчере задач, он подписывает 32-битные.
    Тулза от людей из микрософт, которая показывала дефрагментацию оперативной памяти, там полный швах.
    Ответ написан
    1 комментарий
  • C# и OutOfmemoryExtension - как перейти на полноценные 64х?

    Ну без кода сказать в чём конкретно проблема нельзя, но вот пара советов:

    1. Убедись что Target platform у тебя x64 (Но вообще, если у тебя dotnet core, то он и так и так не будет упираться в 4гб)
    2. Убедись, что где-то в недрах у тебя не выделяется массив более чем на int.MaxValue элементов (внутри словарей массив, если мне память не изменяет)
    3. Убедись, что это ошибка именно из рантайма приходит, а не выкинуто где-то явно
    4. Попробуй как-нибудь разделить свои данные, чтобы для их хранения не требовался непрерывный кусок памяти.
    5. Если ты используешь net framework, а не net core, то тебе нужно в конфиге явно указать, что ты хочешь создавать объекты более 2гб размером.
    https://docs.microsoft.com/en-us/dotnet/framework/...

    VS2022 и так x64, да и даже если бы была х32, как в 2019 - это бы не повлияло на само приложение.
    Ну и возьми dotMemory, чтобы продиагностировать проблемы в работе с памятью.
    Ответ написан
    7 комментариев
  • Blogger и xml "база данных" - как это может работать?

    webxaser
    @webxaser
    В блог на Blogger нельзя загружать никакие CSS, JS, XML-файлы. Раньше был хак с подзагрузкой с Google Drive, но он больше не работает. Поэтому вариант с XML-файлом, тем более на несколько мегабайт, вряд ли вам подходит.
    Но - вы можете хранить данные в JS-массиве и сразу же с ним работать на определённой странице, т.к. лимита на вес вроде бы нет. Однако страницу больше 15 Мб делать не рекомендую по причине проблем с загрузкой.
    Ответ написан
    3 комментария
  • Как сделать постоянный фоновый Process в C#?

    ImmortalCAT
    @ImmortalCAT
    C# loving
    Посмотрите в сторону Background Process
    А так же есть библиотека Quartz.NET
    Ответ написан
    1 комментарий
  • Как сделать постоянный фоновый Process в C#?

    bingo347
    @bingo347
    Crazy on performance...
    Потому что метод ReadToEnd блокирует тред пока не прочитает весь стрим до конца
    Используйте ReadLineAsync или ReadToEndAsync чтоб читать данные асинхронно.
    Ответ написан
    22 комментария
  • Как создать DateTime с TimeZoneInfo не меняя время?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Если так
    DateTime UnspecifiedDateTime = DateTime.SpecifyKind(new DateTime(2020, 08, 22, 15, 00, 0), DateTimeKind.Unspecified);
    var nzstTz = TimeZoneInfo.FindSystemTimeZoneById("New Zealand Standard Time");
    var mskTz = TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time");
    var mskTime = TimeZoneInfo.ConvertTime(UnspecifiedDateTime, nzstTz, mskTz);
    Ответ написан
    2 комментария
  • Куда пропала Новая Зеландия?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Pacific/Auckland и Pacific/Chatham
    Объяснение
    Ответ написан
    5 комментариев
  • Как получить отслеживаемый и постоянный как поток ProcessStartInfo в C#?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ни как. ProcessStartInfo отработал и умер. Вы сами сказали вам нужен поток, так и создайте его.
    Лучше оберните все в класс, где будете дергать свой скрипт раз в 200 мс.
    public class ProcInfo{
    public DateTime Start{get; private set;}
    public DateTime Stop{get; private set;}
    public string Errors{get; private set;}
    public string Output{get; private set;}
    // .... что то еще
    }
    var procInfo = new List<ProcInfo>();


    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Threading;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                var worker = new Worker();
                worker.Start();
                Thread.Sleep(1000); // тут можно поставить Console.ReadLine(); и  ждать вашего ввода, в общем на ваше усмотрение. 
                Console.ReadLine();
                worker.EmergencyExit();
            }
        }
        public class Worker
        {
            private const string PythonPath = @"C:/Python/Python38-32/python.exe";
            private const string PyScript = @"Load.py";
            private const int Interval = 200;
            private Thread _thread = null;
    
            private readonly List<ProcInfo> _infos = new List<ProcInfo>();
    
            private void Run()
            {
                var processInfo = new ProcInfo { Start = DateTime.Now };
                var psi = new ProcessStartInfo
                {
                    FileName = PythonPath,
                    UseShellExecute = false,
                    CreateNoWindow = true,
                    RedirectStandardOutput = true,
                    RedirectStandardError = true,
                    Arguments = $"\"{PyScript}\" "/*// опустил для ясности все остальные аргументы*/
                };
                try
                {
                    using var process = Process.Start(psi);
                    processInfo.Error = process.StandardError.ReadToEnd();
                    processInfo.Output = process.StandardOutput.ReadToEnd();
                    processInfo.Stop = DateTime.Now;
                    _infos.Add(processInfo);
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.Message);
                    Thread.Sleep(Interval);// эмулируем работу на самом деле у меня ничего не работает
                    processInfo.Error = e.Message;
                    processInfo.Stop = DateTime.Now;
                    _infos.Add(processInfo);
                }
    
                var delay = processInfo.Stop - processInfo.Start;
                if (delay.TotalMilliseconds < Interval) Thread.Sleep(Interval - (int)delay.TotalMilliseconds); // скрипт отработал быстрее чем нужно ждем
                Run(); // перезапускаем себя
            }
    
            public void Start()
            {
                _thread = new Thread(new ThreadStart(Run));
                _thread.Start();
            }
    
            public void EmergencyExit()
            {
                _thread?.Abort();
            }
        }
        public class ProcInfo
        {
            public DateTime Start { get; set; }
            public DateTime Stop { get; set; }
            public string Output { get; set; }
            public string Error { get; set; }
        }
    }
    Ответ написан
    6 комментариев
  • Как получить отслеживаемый и постоянный как поток ProcessStartInfo в C#?

    petermzg
    @petermzg
    Самый лучший программист
    Создали класс для отслеживания будующего процесса
    var process = new Process
            {
                StartInfo = psi 
            };

    Назначили асинхронные обработчики
    process.OutputDataReceived += (sender, args) => Display(args.Data);
    process.ErrorDataReceived += (sender, args) => Display(args.Data);

    Запустили процесс и чтение потоков вывода
    process.Start();
    process.BeginOutputReadLine();
    process.BeginErrorReadLine();


    А далее просто переодически опрашиваете состояние
    var exited = process.WaitForExit(0);
    Ответ написан
    4 комментария
  • Возможно ли копировать nfc и издать его через телефон?

    Zoominger
    @Zoominger
    System Integrator
    В теории - да.
    На практике - нет.
    Ответ написан
    Комментировать
  • Параллельное сохранение файла консоли где я хочу?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    ну тогда уж гуглите 'mirror stdout', а то 'redirect stdout' именно перенаправит вывод в куда то. на экране будет пусто
    или даже временный файл где все это на самом деле хранится
    не такого
    что то подсказывает мне, что есть некая область памяти
    такое есть, это буффер вашего stdout, но для начала он под капотом системы. если в линуксе, то это одна история, если винде, то абсолютно другая. про винду добавлю - можете погрызть win32 api. с одной стороны гарантированно возможно залезть грязными ручками, даже из шарпа, в буффер stdout. с другой стороны гарантированно придется сильно напрягать мозги (с непривычка, а так то там ни че страшного) и много гуглить. а еще, в процессе такого обучения, наверняка иногда будете ронять систему. я так думаю. ибо если бы вы уже имели опыт общения с win32 api, то вряд ли бы задавали этот вопрос

    ps вишенка на тортик - в шарпе можно элегантно добавить свои методы вывода, и дублировать вывод на экран и в файл, внутри такого метода. а еще есть просто море готовых либ логгирования, с огромным количество параметров

    OMG

    iamserge,
    Я хотел как КРАСИВО! То есть продублировать еще раз, как все, но так чтобы КРАСИВО, как будто я не занимаюсь черти чем, а делаю не как все и весь такой молодец. Понимаете почему?
    понимаю только что до вас не доходит абсолютно
    То есть все таки нет? https://www.opennet.ru/docs/RUS/bash_scripting_gui...
    Хм, нашел такая штука ... Оно Linux судя по всему, но суть ясная ... это вообще команда консоли, что судя по всему означает, что надо в "этом состоянии" запуститься ... Хм, мысль интересная ... Пока не выглядит красивым, что жаль.
    то что вы нашли, это перенаправление. я об этом раз пять уже сказал. в винде тоже самое, с небольшими отличиями:
    если у вас выхлоп без диалога, то все просто до отвращения - пишете скрипт, в котором перенаправляете в "куда хочу" выхлоп проги, а уже после ее оокончания, выводите его еще и на экран
    а потоки ввода вывода, не смотря на различия в исходниках ядер операционнах систем GNU Linix и MS Windosw, иделогочески работают абсолютно одинаково. api разные. но идеология одна. перенаправить выхлоп готовой проги в скрипте элементарно, даже оператор для скриптов одинаковый >. но если вы захотите дублировать вывод (а именно так звучит ваш вопрос)
    Параллельное сохранение файла консоли где я хочу?
    то придеся лезть в системное программирование. и в Linix и Windosw

    и последний раз повторяю - если вы пишете свою собственную программу на C# (!!! а таков тег вопроса), сделать свою функцию-заменитель Console.WriteLine()не соизмеримо проще. и в реализации. и в использовании
    Ответ написан
    9 комментариев
  • Библиотека pyd в C# может полноценно использоваться?

    Честно говоря не нашёл упоминания dll в статье. По данной ссылке библиотека для Python. Напрямую со своим кодом на C# поженить его не удастся, т.к. Iron Python работает со 2-ой версией языка, а вам необходима 3.
    Вариантом интеграции в вашу систему будет написание сервиса на python, который через сокет будет предоставлять интерфейс к этой библиотеке.
    Или посидев над кодом их библиотеки переписать её на C#. Скорее всего она так же из себя представляет обертку с вызова и через websocket или rest
    Ответ написан
  • Как сделать событие таймера в Python?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    import time
    
    while True:
        # код проверки сюда
        time.sleep(0.5) # уснуть на пол секунды
    Ответ написан
    3 комментария
  • C# - как выбрать хранилище данных в памяти?

    @Sumor
    Всё зависит от того, что необходимо.
    Если необходимо просто проводить последовательную обработку, то нужен IEnumerable.
    Если нужно знать заранее количество элементов, то нужен ICollection.
    Если нужна работа доступ по индексам элементов, то нужен IList.
    Если нужна работа по ключам, то нужен IDictionary.
    Если нужно связывание/отработка изменений элементов, то нужны IBindingList или IObservableCollection.
    Это базовые возможности, которые будет наследовать любой класс для хранения элементов. Дальше если важен способ хранения элементов или особенный доступ - выбираете или реализуете класс с нужными интерфейсами и возможностями.
    Базовые классы: массив, List<T>
    Queue<T> - очередь
    Stack<T> - стек
    Dictionary<TK,TV> - словарь
    ObservableCollection<T> - коллекция с поддержкой событий изменения
    Ответ написан
    2 комментария
  • C# - как выбрать хранилище данных в памяти?

    2ord
    @2ord
    По сути, требуется список элементов определенной структуры.
    List<MyStruct>
    Но если нужна персистентность данных, то по-моему лучшим решением будет таки СУБД типа SQLite. Оно будет и экономичнее в потреблении памяти и более масштабируемо.
    Ответ написан
    4 комментария
  • Тип данных аналогичный таблице в C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    если вам уже пришла в голову сортировка, тогда все таки массив структур или классов (как аналогов строк БД).. после чего, можете открыть для себя списки и словари C# вместо массивов

    следующий уровень игры - Entity Framework, очень упрощенная работа с БД. как раз для вашего случая, возможно будет интересен вариант БД in-memory

    тут все зависит от задачи. предложенные мной варианты, скорее ориентированы на энтерпрайз, а если нужно очень легковесное решение - тогда все таки просто массивы классов или структур
    Ответ написан
    1 комментарий
  • Тип данных аналогичный таблице в C#?

    @lil_Toady
    Все верно, вам подойдет struct или class, чтобы описать одну запись (строку), разница между ними будет что первое - value type, не может быть null. И далее любая коллекция, даже простой массив.

    Предположим что вы описали сущность так:
    class Item
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public DateTime Time { get; set; }
    }


    для простоты используем List - простейший динамический список, можно добавлять, удалять и т.п.:
    var timeTable = new List<Item>
    {
      new Item { Id = 1, Title = "Иван Сергеевич", Time = DateTime.Parse("20.05.2019 18:45") },
      new Item { Id = 2, Title = "Петр Николаевич", Time = DateTime.Parse("20.05.2019 16:45") },
    };


    И теперь через Linq (using System.Linq;) можно работать с этими данным, работает на любой коллекции или массиве, внедряющих интерфейс IEnumerable, и предоставляет различные методы типа Where, Min, Max, OrderBy и т.п.
    var ordered = timeTable.OrderBy(item => item.Time); // Получили IEnumerable<Item>  отсортированный по Time


    P.S. Такая запись, более похожая на SQL тоже возможна, но думаю подход с методами будет все же более удобным
    var ordered = from item in timeTable orderby item.Time ascending select item;
    Ответ написан
    2 комментария