MCPcopy Create free account
hub / github.com/tensorflow/tfjs-examples / main

Function main

sentiment/train.js:160–244  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

158}
159
160async function main() {
161 const args = parseArguments();
162
163 let tfn;
164 if (args.gpu) {
165 console.log('Using GPU for training');
166 tfn = require('@tensorflow/tfjs-node-gpu');
167 } else {
168 console.log('Using CPU for training');
169 tfn = require('@tensorflow/tfjs-node');
170 }
171
172 console.log('Loading data...');
173 const multihot = args.modelType === 'multihot';
174 const {xTrain, yTrain, xTest, yTest} =
175 await loadData(args.numWords, args.maxLen, multihot);
176
177 console.log('Building model...');
178 const model = buildModel(
179 args.modelType, args.maxLen, args.numWords, args.embeddingSize);
180
181 model.compile({
182 loss: 'binaryCrossentropy',
183 optimizer: args.optimizer,
184 metrics: ['acc']
185 });
186 model.summary();
187
188 console.log('Training model...');
189 await model.fit(xTrain, yTrain, {
190 epochs: args.epochs,
191 batchSize: args.batchSize,
192 validationSplit: args.validationSplit,
193 callbacks: args.logDir == null ? null : tfn.node.tensorBoard(args.logDir, {
194 updateFreq: args.logUpdateFreq
195 })
196 });
197
198 console.log('Evaluating model...');
199 const [testLoss, testAcc] =
200 model.evaluate(xTest, yTest, {batchSize: args.batchSize});
201 console.log(`Evaluation loss: ${(await testLoss.data())[0].toFixed(4)}`);
202 console.log(`Evaluation accuracy: ${(await testAcc.data())[0].toFixed(4)}`);
203
204 // Save model.
205 let metadata;
206 if (args.modelSaveDir != null && args.modelSaveDir.length > 0) {
207 if (multihot) {
208 console.warn(
209 'Skipping saving of multihot model, which is not supported.');
210 } else {
211 // Create base directory first.
212 shelljs.mkdir('-p', args.modelSaveDir);
213
214 // Load metadata template.
215 console.log('Loading metadata template...');
216 metadata = await loadMetadataTemplate();
217

Callers 1

train.jsFile · 0.70

Calls 5

loadDataFunction · 0.90
loadMetadataTemplateFunction · 0.90
parseArgumentsFunction · 0.70
buildModelFunction · 0.70

Tested by

no test coverage detected