propeller

所属分类:人工智能/神经网络/深度学习
开发工具:Clojure
文件大小:4373KB
下载次数:0
上传日期:2023-04-16 13:11:54
上 传 者sh-1993
说明:  Clojure中另一个基于Push的遗传编程系统
(Yet another Push-based genetic programming system in Clojure)

文件列表:
CHANGELOG.md (772, 2023-09-05)
LICENSE (14199, 2023-09-05)
PSB2 (0, 2023-09-05)
PSB2\directory (0, 2023-09-05)
PSB2\directory\path (0, 2023-09-05)
PSB2\directory\path\goes (0, 2023-09-05)
PSB2\directory\path\goes\here (0, 2023-09-05)
PSB2\directory\path\goes\here\datasets (0, 2023-09-05)
PSB2\directory\path\goes\here\datasets\fizz-buzz (0, 2023-09-05)
PSB2\directory\path\goes\here\datasets\fizz-buzz\fizz-buzz-edge.edn (729, 2023-09-05)
PSB2\directory\path\goes\here\datasets\fizz-buzz\fizz-buzz-random.edn (36162969, 2023-09-05)
assets (0, 2023-09-05)
assets\index.html (184, 2023-09-05)
deps.edn (547, 2023-09-05)
docs (0, 2023-09-05)
docs\A_Guide_To_Propeller.html (27601, 2023-09-05)
docs\Adding_Genetic_Operators.html (17032, 2023-09-05)
docs\Adding_Problem.html (20203, 2023-09-05)
docs\Adding_Selection_Method.html (15629, 2023-09-05)
docs\Additional_Instructions.html (28226, 2023-09-05)
docs\Generating_Documentation.html (15743, 2023-09-05)
docs\Genetic_Programming_Loop.html (14036, 2023-09-05)
docs\Genome.html (14964, 2023-09-05)
docs\Intro.html (26559, 2023-09-05)
docs\Selection.html (15720, 2023-09-05)
docs\Simplification.html (15271, 2023-09-05)
docs\Variation.html (19657, 2023-09-05)
docs\css (0, 2023-09-05)
docs\css\default.css (7859, 2023-09-05)
docs\css\highlight.css (1146, 2023-09-05)
docs\index.html (62471, 2023-09-05)
docs\js (0, 2023-09-05)
docs\js\highlight.min.js (11001, 2023-09-05)
docs\js\jquery.min.js (96381, 2023-09-05)
... ...

# propeller Yet another Push-based genetic programming system in Clojure. Full documentation is at [https://lspector.github.io/propeller/](https://lspector.github.io/propeller/). ## Usage If you are working in a Clojure IDE with an integrated REPL, the first thing you may want to do is to open `src/propeller/session.cljc` and evaluate the namespace declaration and the commented-out expressions therein. These demonstrate core components of Propeller including complete genetic programming runs. When conducting complete genetic programming runs this way (using `gp/gp`), depending on your IDE you may need to explicitly open and load the problem file before evaluating the calls to `require` and `gp/gp`. To run Propeller from the command line, on a genetic programming problem that is defined within this project, you will probably want to use either the Clojure [CLI tools](https://clojure.org/guides/deps_and_cli) or [leiningen](https://leiningen.org). In the examples below, the leiningen and CLI commands are identical except that the former begin with `lein run -m`, while the latter begin with `clj -M -m`. To start a run use `clj -M -m ` or `lein run -m `, replacing `` with the actual namespace that you will find at the top of the problem file. For example, you can run the simple-regression genetic programming problem with: ``` clj -M -m propeller.problems.simple-regression ``` or ``` lein run -m propeller.problems.simple-regression ``` Additional command-line arguments may be provided to override the default key/value pairs specified in the problem file, for example: ``` clj -M -m propeller.problems.simple-regression :population-size 100 ``` or ``` lein run -m propeller.problems.simple-regression :population-size 100 ``` On Unix operating systems, including MacOS, you can use something like the following to send output both to the terminal and to a text file (called `outfile` in this example): ``` clj -M -m propeller.problems.simple-regression | tee outfile ``` or ``` lein run -m propeller.problems.simple-regression | tee outfile ``` If you want to provide command line arguments that include characters that may be interpreted by your command line shell before they get to Clojure, then enclose those in double quotes, like in this example that provides a non-default value for the `:variation` argument, which is a clojure map containing curly brackets that may confuse your shell: ``` clj -M -m propeller.problems.simple-regression :variation "{:umad 1.0}" ``` or ``` lein run -m propeller.problems.simple-regression :variation "{:umad 1.0}" ``` For many genetic operator hyperparameters, collections may be provided in place of single values. When this is done, a random element of the collection will be chosen (with each being equally likely) each time the operator is used. When specied at the command line, these collections will also have to be quoted, for example with `:umad-rate "[0.01 0.05 0.1]"` to mean that UMAD rates of 0.01, 0.05, and 0.1 can be used. By default, Propeller will conduct many processes concurrently on multiple cores using threads. If you want to disable this behavior (for example, during debugging) then provide the argument `:single-thread-mode` with the value `true`. Threads are not available in Javascript, so no processes are run concurrnetly when Propeller is run in Clojurescript. ## CLJS Usage ### Development Run in development: ```bash yarn (mkdir -p target && cp assets/index.html target/) yarn shadow-cljs watch app ``` `shadow-cljs` will be installed in `node_modules/` when you run `yarn`. `:dev-http` specifies that `target/` will be served at http://localhost:8080 . ### REPL After page is loaded, you may also start a REPL connected to browser with: ```bash yarn shadow-cljs cljs-repl app ``` Once the REPL is loaded, load the core namespace with: ``` (ns propeller.core) ``` Calling `(-main)` will run the default genetic programming problem. ## Description Propel is an implementation of the Push programming language and the PushGP genetic programming system in Clojure. For more information on Push and PushGP see [http://pushlanguage.org](http://pushlanguage.org).

近期下载者

相关文件


收藏者