فئة CNN تمتد tf.layers.Layer {
      منشئ (NUM_OUTPUT_CLASSES = 10) {
        ممتاز({})؛
        this.conv2d_1 = tf.layers.conv2d({
        شكل الإدخال: [28، 28، 1]،
        حجم النواة: 5،
        المرشحات: 8،
        الخطوات: 1،
        التنشيط: "relu"،
        kernelInitializer: "قياس التباين"
       })
       this.maxPool_1 = tf.layers.maxPooling2d({حجم التجمع: [2, 2], الخطوات: [2, 2]})
       this.conv2d_2 = tf.layers.conv2d({
        حجم النواة: 5،
        المرشحات: 16،
        الخطوات: 1،
        التنشيط: "relu"،
        kernelInitializer: "قياس التباين"
       })
       
       this.maxPool_2 = tf.layers.maxPooling2d({حجم التجمع: [2, 2], الخطوات: [2, 2]})
       this.flatten = tf.layers.flatten()
       this.dense = tf.layers.dense({
          الوحدات: 10،
          kernelInitializer: 'varianceScaling'،
          التنشيط : سوفت ماكس
        })
      }
   
      استدعاء (س، كوارجس) {
        س = this.conv2d_1.apply(x)
        س = this.maxPool_1.apply(x)
        س = this.conv2d_2.apply(x)
        س = this.maxPool_2.apply(x)
        س = this.flatten.apply(x)
        س = هذا.dense.apply(x)
        العودة س
      }
      getClassName() { إرجاع "CNN" }
      
    }


قطار وظيفة غير متزامنة (دس) {
  نموذج ثابت = CNN () جديد
  // model.fitDataset(ds, {epochs: 5}).then(info => {
  // console.log('الدقة', info.history.acc);
  // });

  مُحسِّن const = tf.train.adam(0.001);
  لـ (دع العصر = 0؛ العصر <5؛ العصر ++) {
    انتظر ds.forEachAsync(({xs, ys}) => {
      محسن.تقليل(() => {
        const predYs = model.call(xs);
        خسارة const = tf.losses.softmaxCrossEntropy(ys, predYs);
        Loss.data().then(l => console.log('Loss', l[0]));
        تعويض الخساره؛
      });
    });
    console.log('Epoch', Epoch);
  }
}


وظيفة * البيانات () {
    لـ (دع i = 0; i < 1; i++) {
      // قم بإنشاء عينة واحدة في كل مرة.
      العائد tf.randomNormal([28, 28, 1]);
    }
    }

    وظيفة * تسميات () {
    لـ (دع i = 0; i < 1; i++) {
      // قم بإنشاء عينة واحدة في كل مرة.
      العائد tf.randomUniform([10]);
    }
    }

const xs = tf.data.generator(data);
const ys = tf.data.generator(labels);
const ds = tf.data.zip({xs, ys}).shuffle(1).batch(1024);

خطأ Train(ds): لا يمكن العثور على اتصال بين أي متغير ونتيجة دالة الخسارة y=f(x). يرجى التأكد من أن العمليات التي تستخدم المتغيرات موجودة داخل الدالة f التي تم تمريرها لتقليل ().
{"source": "LDJnr/Capybara#Dove", "kind": "unknown", "evolved_from": null}