あなたが参照しているスクリプトは正確にはわかりませんが、少なくとも2つのpythonファイルがあると仮定します。 1つは実際のニューラルネットワークであり、もう1つはトレーニングと評価を扱うものです。
input_y = tf.placeholder(tf.float32, [None, classes], name="input_y")
多くの時間、彼らは、データへの訓練入力を参照してください。
上記の例のように、yという名前のテンソルは、通常、ラベルを参照します。
上記のコードはinput_y
可変長([None, classes]
からNone
)の寸法が、classes
の各要素を有するタイプfloat32
のテンソル(モーメントの配列を考える)、であると言います。
classes
は3、input_y
はこのようになりました場合:ちょうどだけでなく、それは次のようになります
[[0, 0, 1], [1, 0, 0], [0, 1, 0]]
:
[[0, 0, 1], [1, 0, 0], [0, 1, 0], [0, 1, 0], [0, 0, 1]]
を長さを変えることができますが、私たちはいつものように持っている必要があります要素のサイズ3(classes
) 意味は、例えば、[0, 0, 1]
は、インデックス2(1つのホット表記を探す)に1があるため、これがクラス2のラベルであることを意味します。
この点は、この種の入力を持つニューラルネットワークが最大3つのクラスを学習できることです。テンソルxの各入力には、テンソルyのラベルが関連付けられ、yのラベルは、1つのホット表記で0,1または2のいずれかになります。
このようにすると、たとえば「キー」、「ハウスキー」、「カーキー」などを学習できますが、たとえば「OfficeKeys」を追加することはできません。
最初の手順では、ネットワークで必要なラベルの最大数を知ることができます。
一度にすべてを学ぶ必要はありません。これは、ポイント2に私たちをもたらします:
見てくださいhere。これは、Tensorflow Saverクラスのドキュメントです。これにより、モデルを保存して読み込むことができます。
これは、2クラスのデータセットでモデルをトレーニングし、保存し、3クラスのデータセットを生成し、以前に保存したモデルとトレーニングを新しいデータセットにロードします。保存したモデルと同じ「知識」(重み)が適用されますが、3番目のクラスに適合するよう調整されます。
しかし、このためには、ネットワークが最初から3つのクラスを処理できることを確認する必要があります。
希望すると便利です。