tensorflow2.xスタディノート29:公式APIドキュメントの簡単な要約

1.tf以下の一般的に使用されるAPI(以下は、主に処理データを定義するために、より一般的に使用されます)

1. tf.constant、tf.variable(.assign、.assign_add、
.assign_subなど、定数よりも多くの属性があります。これらの属性は、値をvar変数自体に直接返します。つまり、値を直接変更します)、
tf .string、tf.range、tf.ones、tf.zeros、tf.linespace; tf.meshgrid.tf.RaggedTensor;定義データ

2、tf.fill、tf.shape、tf.one_hot、tf.sort、tf.split、tf.stack、tf.concat、tf.reshape、tf.squeeze、tf.reverse、
tf.tanspose、tf.unique;グラフ数

3. tf.random.normal、tf.random.shuffle、tf.random.uniform;乱数を定義します

4.tf.function;操作関数

5. tf.device;データを計算するデバイス(GPUまたはCPU)を指定します

6. tf.GradientTape、tf.gradients、tf.stop_gradient;カスタムトレーニングで使用する場合の明示的な微分

次に、tf.audio一般的に使用されるAPI

1. tf.audio.decode_wav; WAV形式のオーディオファイルをフロートテンソルに解析します。shape=(length、channels)

2.tf.audio.encode_wav;上記のfloatタイプのテンソルをWAV形式のオーディオファイルにエンコードします

3、tf.autograph一般的に使用されるAPI

1. tf.autograph.to_graph;通常のPythonプログラムをtf計算グラフに変換するため、関数の効率が向上します。

2. tf.autograph.to_code; to_graphに似ていますが、プログラムコードを文字列の形式で返します。

第四にtf.compat、(互換性自体は互換性を意味します)の下で一般的に使用されるAPI

1. tf.compat.as_bytes; unicodeまたはbytesarray、バイトをバイトに変換します

2.tf.compat.as_text;文字列のようなデータをUnicodeに変換します

3.tf.compat.as_str_any;入力をstrタイプに変換します

4. tf.compat.v1、tf.compat.v2;これら2つは、tf1.xおよびtf2.xのコードと互換性があるために使用されます。つまり、v1またはv2の直下で独自のバージョンのこの関数を呼び出すことができます。 。v1。= tf1。; v2。= tf2 .;これらはルートスペースです

5、tf.cofig一般的に使用されるAPI(主にGPUまたはCPU設定に使用)

ここに画像の説明を挿入します

6、tf.data(主にデータセットの生成と操作に使用される)で一般的に使用されるAPI

1. tf.data.Datasetで一般的に使用されるAPI、つまり、生成されたデータセットが実行できるメソッド
apply、batch、concatenate、enumerate、filter、from_generator、from_tensor_slices、
from_tensors、Interval、map、range、repeat、shuffle、take 、スキップ

2. tf.data.TextLineDatasetで一般的に使用されるAPI。ファイル内の各行を解析してデータセットを生成するために使用されます。データセットを生成した後の関数は、1とまったく同じです。

3. TFRecordファイルを解析してデータセットを生成するために使用されるtf.data.TFRecordDatasetで一般的に使用されるAPI。データセットを生成した後の関数は、1の関数とまったく同じです。

7.以下でtf.distribute一般的に使用されるAPI(主に分散トレーニング用の分散戦略が含まれます)

1、tf.distribute.MirroredStrategy
2、tf.distribute.experimental.CentralStorageStrategy
3、tf.distribute.experimental.MultiWorkerMirroredStrategy
4、tf.distribute.experimental.ParameterServerStrategy
5、tf.distribute.experimental.TPUStrategy

8.以下でtf.dtypes一般的に使用されるAPI(主にデ​​ータ型変換に使用)

1. tf.dtypes.as_dtype(type_value);指定されたタイプ値をDTypeに変換します。DTypeの主な値は次のとおりです。
ここに画像の説明を挿入します

2.tf.dtypes.cast;データ型変換を実行します

3. tf.dtypes.complex;指定された2つの数値を複素数に結合します(1つの実数部、1つの虚数部)

9、tf.estimator一般的に使用されるAPI(これは高レベルのAPIであり、独自のモデルを構築する必要はありません。データを入力し、分類カテゴリを指定するなどの必要があります。それを呼び出すだけ.train(),.evaluate(),.predict()です。主に便宜上です。モデルのトレーニング、評価、および予測の概要。Estimatorの下に多数あります)

1、tf.estimator.add_metrics(estimator、metric_fn);往推定量中添加メトリック
2、tf.estimator.BaselineClassifier、tf.estimator.BaselineRegressor、tf.estimator.BaselineEstimator
3、tf.estimator.DNNClassifier、tf.estimator.DNNEstimator 、tf.estimator.DNNRegressor
4、tf.estimator.LinearClassifier、tf.estimator.LinearEstimator、tf.estimator.LinearRegressor

10.以下でtf.feature_column一般的に使用されるAPI(主に、多くの離散値を持つこれらの機能を処理し、それらを0,1コードに変換するため)

1、tf.feature_column.categorical_column_with_vocabulary
2、tf.feature_column.indicator_column
3、tf.feature_column.crossed_column
4、tf.feature_column.numeric_column

11. tf.image(主に画像データまたは画像の処理)で一般的に使用されるAPI

1. tf.image.adjust_brightness、tf.image.adjust_contrast、tf.image.adjust_gamma、明るさを調整する、等
2. tf.image.central_crop、tf.image.crop_and_resize、tf.image.crop_to_bounding_box;収穫
3 TF。 image。draw_bounding_boxes;複数のアンカーボックスを描画できます
4、tf.image.flip_left_right、tf.image.flip_up_down;フリップイメージ
5、tf.image.grayscale_to_rgb、tf.image.hsv_to_rgb、tf.image.rgb_to_grayscale;カラードメイン変換
6、 tf .image.random_flip_left_right、tf.image.random_crop;ランダム操作
7、tf.image.resize、tf.image.ResizeMethod.BILINEAR; ResizeMethodには多くのサイズ変更メソッドがあります

12、tf.io(主にファイル(画像、テキストなど)またはテナーを解析またはエンコードまたはシリアル化するために)で一般的に使用されるAPI

1. tf.io.decode_gif、tf.io.decode_jpeg、tf.io.decode_image ...;画像をデコードします
2.tf.io.decode_csv、tf.io.read_file、tf.io.write_file;読み取り、書き込み、ファイルの解析
3.tf.io.serialize_sparse、tf.io.serialize_tensor;シリアル化操作
4. tf.io.TFRecordOptions、tf.io.TFRecordWriter; TFRecordファイルの操作
5.tf.io.gfile。(listdir、makedirs、remove 、名前の変更、存在、コピー)(使いやすい)

13、tf.keras一般的に使用されるAPI(強調、主にmodel,layers関連)

1. tf.keras.Input;モデルにデータを入力するために使用されるkerasテンソルを初期化し、データの形状、データ型、その他の情報を指定します。もちろん、一般的な計算にも使用できますが、あまり使われていません。主な使用法は、2の最初の例に示すように、モデルを作成することです。

2. tf.keras.Model;主にモデルの構築に使用されます。モデルを構築するには、次の2つの方法があります。

①inputs = tf.keras.Input(shape=(3,))
x = tf.keras.layers.Dense(4, activation=tf.nn.relu)(inputs)
outputs = tf.keras.layers.Dense(5, activation=tf.nn.softmax)(x)
model = tf.keras.Model(inputs=inputs, outputs=outputs)
import tensorflow as tf
 
class MyModel(tf.keras.Model):
 
  def __init__(self):
    super(MyModel, self).__init__()
    self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
    self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)
 
  def call(self, inputs):
    x = self.dense1(inputs)
    return self.dense2(x)
 
model = MyModel()

次に、モデルのさまざまな属性を呼び出すことができます:
model.layers、model.metrics_names

方法:model.compile、evaluate、evaluate_generator、fit、fit_generator、summarypredict
、predict_generator、save、save_weights、load_weights、reset_states、reset_metrics

history = model.fit()、history = model.fit_generator()、history.history [lossまたはaccまたはval_lossまたはval_acc]、これは辞書です

予測=モデル.predict()、予測=モデル.predict_generator()、それは形状などの予測結果であり、その形状を確認できます:predict.shape =(num_samples、num_class)、これは分類の出力です問題

3. tf.keras.Sequential;は、モデルを格納し、モデルオブジェクトを返す線形スタックですが、レイヤーを追加および削除するための2つのモデルよりも2つのメソッドがあります:add、pop

4. tf.keras.activations.softmax、tf.keras.activations.relu、tf.keras.activations.tanh;
tf.nn.softmax、tf.nn.sigmoid、tf.nn.relu、tf.nn.tanh。 ..;アクティベーション関数を定義する

5. tf.keras.applications.VGG16、tf.keras.applications.ResNet50 ...;定義されたモデルを直接呼び出す

6. tf.keras.backend;は、kerasに提供されるバックエンドAPIです。いわゆるバックエンドは、いくつかの基本的な操作、つまり数学的な計算方法です。kerasは高レベルのAPIであるため、これらの基本的な操作はありません。これは、tf.mathの数学演算方法に近いものです。

7. tf.keras.callbacks.EarlyStopping、tf.keras.callbacks.ModelCheckpoint、
tf.keras.callbacks.TensorBoard; tf.keras.callbacks.LearningRateScheduler
コールバック関数は、トレーニングの特定の段階で呼び出される関数のセットです。コールバック関数を使用して、トレーニングプロセス中にネットワークの内部状態と統計情報を監視できます。コールバック関数リストをモデルの.fit()に渡すことにより、関数セット内の関数を特定のトレーニング段階で呼び出すことができます。これはLearningRateSchedulerの例ですが、それでも非常に鮮やかです。

def scheduler(epoch):
  if epoch < 10:
    return 0.001
  else:
    return 0.001 * tf.math.exp(0.1 * (10 - epoch))

callback = tf.keras.callbacks.LearningRateScheduler(scheduler)
model.fit(data, labels, epochs=100, callbacks=[callback],
          validation_data=(val_data, val_labels))

8. tf.keras.datasets;主にfashion_minist、cifa10、minist、cifa100などの一部のデータセットをダウンロードするために使用されます。呼び出し形式は次​​のとおりです
。fashion_minist= keras.datasets.fashion_minist、fashion_minist.load_data()

9. tf.keras.estimator.model_to_estimator; kerasモデルを推定量に変換するために使用されます。tf.estimatorにはそのような関数はなく、この場所にのみあることに注意してください。

10. tf.keras.initializers;主にデータの初期化、初期化またはシリアル化/逆シリアル化インスタンスの作成に使用されます。呼び出し形式は次​​のとおりです:tf.keras.layers.Dense(32、activation = 'relu'、kernel_initializer = tf。 keras.initializers.glorot_normal))

11. tf.keras.layers.Dense、tf.keras.layers.Conv2D、tf.keras.layers.MaxPool2D、tf.keras.layers.Flatten;
tf.nn.avg_pool、tf.nn.conv2d、tf.nn。ドロップアウト、tf.nn.max_pool ...;
畳み込み層、完全接続、平坦化層、プーリング層など、さまざまなネットワーク層があります。

12. tf.keras.losses.MSE、tf.keras.losses.sparse_categorical_crossentropy;損失関数
tf.nn.nce_loss、tf.nn.l2_loss、tf.nn.sampled_softmax_loss ...を定義します。

13. tf.keras.metrics;以下にエラーと精度を計算するためのさまざまな関数もあります。エラー関数はtf.keras.lossesの関数と似ていますが、使用法が異なります。前者によって返されるオブジェクトには、使用可能な多くの属性があります。 、後者は単なる値を返します(metircsの関数は、リセットされる前に毎回更新されるデータを自動的に加算することに注意してください。この加算の理解は、最後の計算結果がカウントされず、現在のすべてが加算されることと同じです。 data立ち上がって、指定した方法に従って再計算します。したがって、Meanを使用すると、最終的な計算はすべてのデータの平均になります。Sumの場合、すべてのデータの合計は次のようになります。計算された)。
コンパイルでは、メトリックに追加されたパラメーターは、トレーニングおよびテスト中にモデルを監視するために使用されます。つまり、測定結果は履歴に保存され、損失は、勾配の更新など、トレーニングに実際に使用される関数です。
主に含まれるもの:精度、カテゴリ精度、カテゴリ精度、平均、合計

model.compile('sgd', loss=tf.keras.losses.SparseCategoricalCrossentropy())
model.compile('sgd', loss='mse',metrics=[tf.keras.metrics.SparseCategoricalCrossentropy()])

tf.losses、tf.metrics、およびtf.optimizersの下のAPIは使用されなくなり、すべてtf.keras.losses、tf.keras.metrics、およびtf.keras.optimizersに移動されることに注意してください。

14. tf.keras.models;主にsave、load、clone model;
およびtf.keras.models.model_from_config、json、yamlが含まれます

15. tf.keras.optimizers.SGD、tf.keras.optimizers.Adam、オプティマイザーを定義します;
tf.keras.optimizers.schedules.LearningRateSchedule、学習率lr減衰器を定義します

16. tf.keras.preprocessing;データの前処理。主に画像を読み取るためのAPIを使用して、最初の3行:
ディレクトリまたはデータフレームからの画像の読み取り、ランダムな明るさのトリミング、回転、スケーリングなどを
含みます。tf.keras.preprocessing .image.ImageDataGenerator、
tf.keras.preprocessing.image.load_img、
tf.keras.preprocessing.image.random_brightness、
tf.keras.preprocessing.image.random_rotation
tf.keras.preprocessing.image.random_shear、
tf.keras.preprocessing。 image.random_zoom
tf .keras.preprocessing.sequence、
tf.keras.preprocessing.text;

train_datagen = keras.preprocessing.image.ImageDataGenerator(
    rescale = 1./255,
    rotation_range = 40,
    width_shift_range = 0.2,
    height_shift_range = 0.2,
    shear_range = 0.2,
    zoom_range = 0.2,
    horizontal_flip = True,
    fill_mode = 'nearest',)
train_generator = train_datagen.flow_from_dataframe(
    train_df,
    directory = './',
    x_col = 'filepath',
    y_col = 'class',
    classes = class_names,
    target_size = (height, width),
    batch_size = batch_size,
    seed = 7,
    shuffle = True,
    class_mode = 'sparse',)
train_generator = train_datagen.flow_from_directory(
    train_dir,
    target_size = (height, width),
    batch_size = batch_size,
    seed = 7,
    shuffle = True,
    class_mode = "categorical")

## ImageDataGeneratorは、読み取られた画像の前処理のみを定義しますが、現時点では、フォルダーから読み取るかデータフレームから読み取るかがわかりません。データフレームから読み取る場合、データフレームの構造は2つである必要があります。Onefeature_column 、1つは各画像のパスで、もう1つは画像のカテゴリです(以下を参照)。

[( './cifar10/train/1.png'、 'カエル')、
'./cifar10/train/2.png'、 'トラック')、
'./cifar10/train/3.png'、 'truck')、
( './ cifar10 / train / 4.png'、 'deer')、
( './ cifar10 / train / 5.png'、 'automobile')]
[( './cifar10/test/ 1.png '、' cat ')、
(' ./cifar10/test/2.png '、' cat ')、
(' ./cifar10/test/3.png '、' cat ')、
(' ./ cifar10 / test / 4.png '、' cat ')、
(' ./cifar10/test/5.png '、' cat ')]

17. tf.keras.regularizers;主に正則化を実現するために使用される正則化は、目的関数の後に項目を追加することです。これにより、目的関数の最良の利点の選択に影響を与え、過剰適合を防ぐことができます。主に次のAPIがあります:
tf.keras.regularizers.l1、tf.keras.regularizers.l2、tf.keras.regularizers.l1_l2、tf.keras.regularizers.L1L2

18、tf.keras.utils:tf.keras.utils.get_file、tf.keras.utils.normalize

15.以下でtf.nn一般的に使用されるAPI

それはtf.kerasの下でいくつかのレイヤーと損失に非常に近いです、それは比較のためにtf.kerasで書かれています

16.以下でtf.ragged一般的に使用されるAPI

tf.ragged.constant、tf.ragged.stack、tf.ragged.range;いわゆる不規則テンソルは、たとえば2次元行列であり、各行に異なる数の要素を持たせることができます。

17.以下でtf.random一般的に使用されるAPI

tf.random.categorical、tf.random.normal、tf.random.gamma、tf.random.shuffle、
tf.random.uniform;正規分布を含むいくつかの乱数を定義するために使用されます

18.以下でtf.saved_model一般的に使用されるAPI

tf.saved_model.save、tf.saved_model.load;モデルの保存と読み込みに使用され、tf.keras.modelsの下にもあります

19. tf.signal(デジタル信号処理関連機能)で一般的に使用されるAPI

fft、fft2d、fft3d、ifft、ifft2d、ifft3d; fftshift、ifftshift; hamming_window、hann_window;
irfft、irfft2d、irfft3d、rfft、rfft2d、rfft3d等等

20.tf.sparse一般的に使用されるAPI(主に処理に使用されますsparsetensor

1、定义sparsetensor:tf.sparse.SparseTensor
tf.sparse.SparseTensor(indices = [[0、0]、[1、2]]、values = [1、2]、dense_shape = [3、4])

2、操作sparsetensor:to_dense、to_indicator、split、transpose、reshape、maximum、expand_dims、reduce_sum、reduce_max、add、concat等等

21.以下でtf.string一般的に使用されるAPI(主に文字列の定義と操作に使用されます)

as_string、bytes_split(バイトで分割)、format、join、split、strip、lower、upper、to_number、Substr

22.以下でtf.test一般的に使用されるAPI(主にGPU関連情報を表示するために使用されます)

tf.test.is_gpu_available、tf.test.gpu_device_name、tf.test.is_built_with_cuda

おすすめ

転載: blog.csdn.net/qq_39507748/article/details/110769378