/// <summary>
        /// Prompts user to enter certain user settings via Console
        /// and writes back to Ceres.json.
        /// </summary>
        public static void DoSetupInitialize()
        {
            string dirLC0Binaries       = GetDirectoryString("  LC0 binaries (with plug-in Ceres.DLL) : ", true);
            string dirLC0Networks       = GetDirectoryString("  LC0 network weights files             : ");
            string defaultNetworkString = GetString("  Default network specification (e.g. \"LC0:703810\")                    : ",
                                                    s => NNNetSpecificationString.IsValid(s));
            string defaultDeviceString = GetString("  Default device specification (e.g. \"GPU:0\")                          : ",
                                                   s => NNDevicesSpecificationString.IsValid(s));

            settings = new CeresUserSettings();
            settings.DirLC0Binaries           = dirLC0Binaries;
            settings.DirLC0Networks           = dirLC0Networks;
            settings.DefaultNetworkSpecString = defaultNetworkString;
            settings.DefaultDeviceSpecString  = defaultDeviceString;
            SaveToDefaultFile();
            LoadFromDefaultFile(); // this cause directory registration

            Console.WriteLine();
            ConsoleUtils.WriteLineColored(ConsoleColor.Cyan, "NEW CONTENTS OF " + CeresUserSettingsManager.DefaultCeresConfigFileName);
            Console.WriteLine("(additional changes can be made by editing in a text editor or using SETOP command in Ceres");

            string fileContext = File.ReadAllText(CeresUserSettingsManager.DefaultCeresConfigFileName);

            Console.WriteLine(fileContext);
        }
Пример #2
0
        /// <summary>
        /// Reads settings from specified settings file.
        /// The DirLC0Networks directory (if present) will be registered with NNWeightsFilesLC0.
        /// </summary>
        public static void LoadFromFile(string settingsFileName)
        {
            if (!File.Exists(settingsFileName))
            {
                throw new ArgumentException($"No such file: {settingsFileName}");
            }

            string jsonString = File.ReadAllText(settingsFileName);

            settings = JsonSerializer.Deserialize <CeresUserSettings>(jsonString);

            if (settings.DirLC0Networks != null & settings.DirLC0Networks != "")
            {
                NNWeightsFilesLC0.RegisterDirectory(settings.DirLC0Networks);
            }

            Console.WriteLine($"Ceres user settings loaded from file {settingsFileName}");
        }