input layer
作用
设置输入层的shape,定义好第一层的结构
全局参数
import numpy as np
import tensorflow as tf
from tensorflow import keras
rows = 10000
columns = 100
emb_size = 5
words_length = 50000
数据一
train_x1 = np.random.random(size=(rows, columns, emb_size))
train_y1 = np.random.randint(low=0, high=2, size=(rows, 1))
# train_y1 = np.random.choice([1, 0], size=(rows, 1))
model1 = keras.Sequential(name="test1")
model1.add(keras.layers.Input(shape=(columns, emb_size), name="my_input_1")) # 这里Input层可要可不要(不加则模型未build),因为构造的数据不用更改shape就可以喂给rnn
model1.add(keras.layers.SimpleRNN(units=10))
model1.add(keras.layers.Dense(1))
model1.compile(loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),
optimizer=tf.keras.optimizers.Adam(1e-4),
metrics=['accuracy'])
model1.fit(train_x1, train_y1, epochs=10, batch_size=100)
数据二
train_x2 = np.random.random(size=(rows, columns))
train_y2 = np.random.randint(low=0, high=2, size=(rows, 1))
model2 = keras.Sequential(name="test2")
model2.add(keras.layers.Input(shape=(columns,), name="my_input_2"))
model2.add(keras.layers.Embedding(input_dim=words_length, output_dim=emb_size))
model2.add(keras.layers.SimpleRNN(units=10))
model2.add(keras.layers.Dense(1))
model2.compile(loss=tf.keras.losses.BinaryCrossentropy(),
optimizer=tf.keras.optimizers.Adam(1e-4),
metrics=['accuracy'])
model2.fit(train_x2, train_y2, epochs=10, batch_size=100)
数据三