测试数据生成

该博客展示了如何利用TensorFlow的`tf.convert_to_tensor`函数和Numpy API来创建测试用例,对一个基于GRU的编码器模型进行结构测试。首先,生成随机整数数组作为输入,然后定义并初始化Encoder类,该类包含一个嵌入层和一个GRU层。在主函数中,创建了测试输入,并通过模型进行前向传播,验证了输出和隐藏状态的形状。

通过tf.convert_to_tensor 函数和 numpy api,创建测试用例 对模型结构进行测试

```python
np.random.randint(2, size=10)
array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0]) # random
np.random.randint(1, size=10)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

numpy.random.randint¶


```python
import matplotlib as mpl
import numpy as np
import sklearn
import pandas as pd
import os
import sys
import time
import tensorflow as tf

from tensorflow import keras

print(tf.__version__)
print(sys.version_info)
for module in mpl, np, pd, sklearn, tf, keras:
    print(module.__name__, module.__version__)


## 定义模型结构
class Encoder(keras.Model):
    def __init__(self, vocab_size, embedding_units, encoding_units, batch_size):
        super().__init__()
        self.batch_size = batch_size
        self.encoding_units = encoding_units
        self.embedding = keras.layers.Embedding(vocab_size, embedding_units)

        self.gru = keras.layers.GRU(self.encoding_units,
                                    return_sequences=True,
                                    return_state=True,
                                    recurrent_initializer='glorot_uniform')

    def call(self, x, hidden):
        x = self.embedding(x)
        output, state = self.gru(x, initial_state=hidden)
        return output, state

    def initialize_hidden_state(self):
        return tf.zeros((self.batch_size, self.encoding_units))


if __name__ == "__main__":
	input_vocab_size = 9394
	embedding_units = 256
	units = 1024
	batch_size = 64
	epochs = 20

    x = tf.convert_to_tensor(np.random.randint(0,9393,(64, 16)), dtype=tf.int32)
    print(x.shape)
    encoder = Encoder(input_vocab_size, embedding_units, units, batch_size)
    sample_hidden = encoder.initialize_hidden_state()
    sample_output, sample_hidden = encoder(x, sample_hidden)

    print(sample_output.shape, sample_hidden.shape)

Numpy数组创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值