Skip to content

Commit

Permalink
Refactored 'mind' to 'network'
Browse files Browse the repository at this point in the history
  • Loading branch information
antoniodeluca committed Feb 20, 2023
1 parent e2c820c commit eb4bad6
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 47 deletions.
48 changes: 24 additions & 24 deletions library/assets/core/Cerebrum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ import {
import {
CerebrumConfiguration,
CerebrumInterface,
Mind,
MindConfiguration,
Network,
NetworkConfiguration,
} from "./types";
import { QueryingInputPatterns, TrainingPatterns } from "./types";

class Cerebrum implements CerebrumInterface {
private configuration: CerebrumConfiguration;

private minds: Mind[];
private networks: Network[];

private checkConfiguration() {
return true;
Expand All @@ -34,54 +34,54 @@ class Cerebrum implements CerebrumInterface {
}
this.configuration = this.transformConfiguration();

this.minds = [];
this.networks = [];

this.configuration.minds.forEach((configuration) => {
this.buildMind(configuration);
this.configuration.networks.forEach((configuration) => {
this.buildNetwork(configuration);
});
}

buildMind(configuration: MindConfiguration) {
this.minds.push({
buildNetwork(configuration: NetworkConfiguration) {
this.networks.push({
name: configuration.name,
network: configuration.network.generator.getInstance(
configuration.network.configuration
code: configuration.code.generator.getInstance(
configuration.code.configuration
),
});
}

trainMind(
trainNetwork(
trainingPatterns: TrainingPatterns,
epochCallback?: TrainingEpochCallback,
iterationCallback?: TrainingIterationCallback,
mindName = "defaultMind"
networkName = "defaultNetwork"
) {
const mind = this.minds.find((mind) => {
return mind.name === mindName;
const network = this.networks.find((network) => {
return network.name === networkName;
});

if (mind === undefined) {
throw new Error("Mind not found during training");
if (network === undefined) {
throw new Error("Network not found during training");
}

mind.network.train(trainingPatterns, epochCallback, iterationCallback);
network.code.train(trainingPatterns, epochCallback, iterationCallback);
}

queryMind(
queryNetwork(
queryingPatterns: QueryingInputPatterns,
epochCallback?: QueryingEpochCallback,
iterationCallback?: QueryingIterationCallback,
mindName = "defaultMind"
networkName = "defaultNetwork"
) {
const mind = this.minds.find((mind) => {
return mind.name === mindName;
const network = this.networks.find((network) => {
return network.name === networkName;
});

if (mind === undefined) {
throw new Error("Mind not found during querying");
if (network === undefined) {
throw new Error("Network not found during querying");
}

mind.network.query(queryingPatterns, epochCallback, iterationCallback);
network.code.query(queryingPatterns, epochCallback, iterationCallback);
}
}

Expand Down
8 changes: 4 additions & 4 deletions library/assets/core/CerebrumFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,16 @@ class CerebrumFactory {
const networkAlphaFactory = new NetworkAlphaFactory(this.calculator);

return {
minds: [
networks: [
{
name: "defaultMind",
network: {
name: "defaultNetwork",
code: {
generator: networkAlphaFactory,
},
inputsFrom: ["cerebrum"],
},
],
outputsFrom: ["defaultMind"],
outputsFrom: ["defaultNetwork"],
} as CerebrumConfiguration;
}

Expand Down
24 changes: 12 additions & 12 deletions library/assets/core/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,40 +52,40 @@ interface QueryingStatus {
}

interface CerebrumInterface {
buildMind: (configuration: MindConfiguration) => void;
buildNetwork: (configuration: NetworkConfiguration) => void;

trainMind: (
trainNetwork: (
trainingPatterns: TrainingPatterns,
epochCallback?: TrainingEpochCallback,
iterationCallback?: TrainingIterationCallback,
mindName?: string
networkName?: string
) => void;

queryMind: (
queryNetwork: (
queryingPatterns: QueryingInputPatterns,
epochCallback?: QueryingEpochCallback,
iterationCallback?: QueryingIterationCallback,
mindName?: string
networkName?: string
) => void;
}

interface MindConfiguration {
interface NetworkConfiguration {
name: string;
network: {
code: {
generator: NetworkAlphaFactory;
configuration?: NetworkAlphaConfiguration;
};
inputsFrom: string[];
}

interface CerebrumConfiguration {
minds: MindConfiguration[];
networks: NetworkConfiguration[];
outputsFrom: string[];
}

interface Mind {
interface Network {
name: string;
network: NetworkInterface;
code: NetworkInterface;
}

interface BrainInterface {
Expand All @@ -102,8 +102,8 @@ interface BrainConfiguration {
export {
CerebrumConfiguration,
CerebrumInterface,
Mind,
MindConfiguration,
Network,
NetworkConfiguration,
BrainConfiguration,
BrainInterface,
TrainingPattern,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ describe("When trained with training examples about the XOR problem", () => {
cerebrum: {
generator: cerebrumFactory,
configuration: {
minds: [
networks: [
{
name: "defaultMind",
network: {
name: "defaultNetwork",
code: {
generator: networkAlphaFactory,
configuration: {
layerDimensions: [2, 4, 1],
Expand All @@ -53,7 +53,7 @@ describe("When trained with training examples about the XOR problem", () => {
inputsFrom: ["cerebrum"],
},
],
outputsFrom: ["defaultMind"],
outputsFrom: ["defaultNetwork"],
} as CerebrumConfiguration,
},
});
Expand Down Expand Up @@ -100,12 +100,12 @@ describe("When trained with training examples about the XOR problem", () => {
},
];

brain.cerebrum.trainMind(trainingPatterns);
brain.cerebrum.trainNetwork(trainingPatterns);
const queryingResults = [] as {
input: QueryingInputPattern;
output: QueryingOutputPattern;
}[];
brain.cerebrum.queryMind(
brain.cerebrum.queryNetwork(
queryingPatterns,
(queryingStatus: QueryingStatus) => {
queryingPatterns.forEach(
Expand All @@ -123,7 +123,7 @@ describe("When trained with training examples about the XOR problem", () => {
);
},
undefined,
"defaultMind"
"defaultNetwork"
);

expect(queryingResults).toEqual(expectedQueryingResults);
Expand Down

0 comments on commit eb4bad6

Please sign in to comment.