tensorflow喂数据进模型小例子

学习深度学习,个人觉得最基础的应该知道怎么喂数据进模型,数据不可能一次性全部进模型,而是选取一个batch的进入,下面写了个小例子模仿来实现,希望能加深理解:

  
  
  1. import numpy as np
  2. x=[[1,1],[1,2],[1,3],[1,4],[1,5],[1,6],[1,7]]
  3. y=[[0,1],[1,0],[0,1],[0,1],[0,1],[1,0],[1,0]]
  4. """
  5. 生成批次数据
  6. 每个batch2 ,每次有两条数据去更新模型(当数据总数为奇数的时候,则最后只有一条)
  7. ,总共轮训5次,也就是每条数据都有5次机会去更新模型的参数
  8. """
  9. def batch_iter(data,batch_size=2,num_epochs=5):
  10. data=np.array(data)
  11. data_size=len(data)
  12. num_batchs_per_epchs=int((data_size-1)/batch_size)+1
  13. for epoch in range(num_epochs):
  14. indices=np.random.permutation(np.arange(data_size))
  15. shufflfed_data=data[indices]
  16. for batch_num in range(num_batchs_per_epchs):
  17. start_index=batch_num*batch_size
  18. end_index=min((batch_num + 1) * batch_size, data_size)
  19. yield shufflfed_data[start_index:end_index]
  20. # x=[[1,1],[1,2],[1,3],[1,4],[1,5],[1,6],[1,7]]
  21. # y=[[0,1],[1,0],[0,1],[0,1],[0,1],[1,0],[1,0]]
  22. """
  23. 准备需要喂入模型的数据
  24. """
  25. def feed_data(batch):
  26. x_batch, y_batch = zip(*batch)
  27. feed_dict = {
  28. "input_x": x_batch,
  29. "input_y": y_batch
  30. }
  31. return feed_dict, len(x_batch)
  32. batch_train = batch_iter(list(zip(x, y)))
  33. for i, batch in enumerate(batch_train):
  34. feed_dict, _ = feed_data(batch)
  35. print(i,"--->",feed_dict)


   
   
  1. 0 ---> {'input_x': (array([1, 5]), array([1, 2])), 'input_y': (array([0, 1]), array([1, 0]))}
  2. 1 ---> {'input_x': (array([1, 1]), array([1, 4])), 'input_y': (array([0, 1]), array([0, 1]))}
  3. 2 ---> {'input_x': (array([1, 3]), array([1, 7])), 'input_y': (array([0, 1]), array([1, 0]))}
  4. 3 ---> {'input_x': (array([1, 6]),), 'input_y': (array([1, 0]),)}
  5. 4 ---> {'input_x': (array([1, 1]), array([1, 6])), 'input_y': (array([0, 1]), array([1, 0]))}
  6. 5 ---> {'input_x': (array([1, 2]), array([1, 4])), 'input_y': (array([1, 0]), array([0, 1]))}
  7. 6 ---> {'input_x': (array([1, 7]), array([1, 3])), 'input_y': (array([1, 0]), array([0, 1]))}
  8. 7 ---> {'input_x': (array([1, 5]),), 'input_y': (array([0, 1]),)}
  9. 8 ---> {'input_x': (array([1, 6]), array([1, 2])), 'input_y': (array([1, 0]), array([1, 0]))}
  10. 9 ---> {'input_x': (array([1, 1]), array([1, 7])), 'input_y': (array([0, 1]), array([1, 0]))}
  11. 10 ---> {'input_x': (array([1, 4]), array([1, 3])), 'input_y': (array([0, 1]), array([0, 1]))}
  12. 11 ---> {'input_x': (array([1, 5]),), 'input_y': (array([0, 1]),)}
  13. 12 ---> {'input_x': (array([1, 5]), array([1, 3])), 'input_y': (array([0, 1]), array([0, 1]))}
  14. 13 ---> {'input_x': (array([1, 6]), array([1, 1])), 'input_y': (array([1, 0]), array([0, 1]))}
  15. 14 ---> {'input_x': (array([1, 2]), array([1, 7])), 'input_y': (array([1, 0]), array([1, 0]))}
  16. 15 ---> {'input_x': (array([1, 4]),), 'input_y': (array([0, 1]),)}
  17. 16 ---> {'input_x': (array([1, 1]), array([1, 2])), 'input_y': (array([0, 1]), array([1, 0]))}
  18. 17 ---> {'input_x': (array([1, 3]), array([1, 5])), 'input_y': (array([0, 1]), array([0, 1]))}
  19. 18 ---> {'input_x': (array([1, 6]), array([1, 4])), 'input_y': (array([1, 0]), array([0, 1]))}
  20. 19 ---> {'input_x': (array([1, 7]),), 'input_y': (array([1, 0]),)}

可以看到总共echo为5次,每次echo分为4次把数据遍历万,函数设置每个batch为2,数据总共个数为7,西能能加深对数据学习深度学习input数据的理解。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值