本文共 1393 字,大约阅读时间需要 4 分钟。
设置输入层的shape,定义好第一层的结构
import numpy as npimport tensorflow as tffrom tensorflow import kerasrows = 10000columns = 100emb_size = 5words_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就可以喂给rnnmodel1.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)
转载地址:http://flugf.baihongyu.com/