【经验与Bug】tensorflow草记

简介: 1 常用小知识conda activate tf在anaconda prompt使用,进入名为tf的虚拟环境。pip install <包名>==可以查看指定包能被找到的所有版本。pip install <包名> -i https://pypi.org/simple

1 常用小知识

  • conda activate tf
    在anaconda prompt使用,进入名为tf的虚拟环境
  • pip install <包名>==
  • 可以查看指定包能被找到的所有版本。
  • pip install <包名> -i https://pypi.org/simple
    从官方源下载包。

绘制多图

plt.figure(figsize=(10,10))
plt.subplot(5,5,1)

Colab挂载谷歌云端硬盘

from google.colab import drive
import os
# 挂载网盘
drive.mount('/content/drive/')  
# 切换路径
os.chdir('/content/drive/MyDrive/rnn') 
# 查看目录下文件
!ls -ll # 和linux终端用法差不多 但是!(感叹号)不能少

python连接列表

a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print(c)
'''
[1, 2, 3, 4, 5, 6]
'''

同样的,元组也可以使用 “+” 进行连接运算。

2 Learn

  • Max Pooling 增强特征,减少数据。
  • 卷积神经网络理论与算法 https://bit.ly/2UGa7uH (Youtube)

卷积层中,每个filter对应有一个bia


tensorflow的自动参数搜索功能,真的有点小期待。


有点失望,刚刚搜索出来的模型效果并不好。层数是预先固定的,搜索了卷积核数、卷积核的尺寸、全连接层的神经元数。虽然预先少了两层卷积,但准确率差距着实有点大。而且搜索得到模型的大小不好控制,比如刚刚搜索出模型的尺寸是原代码中模型的30倍。


原代码提供的模型,5层卷积,验证集准确率可在多个epoch保持100%。


搜索出模型,3层卷积,验证集准确率只到84%。


不知道能不能搜索learning_rate、batch_size。

1) 疑惑未解

1、卷积或池化的边界问题是如何处理的,不同的处理方式又各有什么影响?例如(5,5)的特征图被进行(2,2)的kernel池化或卷积。


2、进行了卷积中特征图的可视化,但是中间为什么会出现一些黑格呢?是特征图真的黑,还是显示的逻辑问题(比如有一步特征图后处理裁剪到[0,255])。

image.png

2) 为何要有"bias"?

我们知道,对于一元线性函数,仅仅 y = w x y=wxy=wx 的表达能力是不够的,为了表达二维平面内的任意一条直线,我们使用了 y = w x + b y=wx+by=wx+b 。但是这个b能否被一个wx所替代?或者说:

y=wx+b 是 y = w 1 x 1 + w 2 x 2 y=w_1x_1+w_2x_2y=w

答案应该是不能。虽然对于任意的b,都可以找到某组(w, x),使得 w x = b wx=bwx=b 。但是我们要的,就是固定,就是不受输入x的影响。

3 问题处理

1) jupyter的环境

如何在conda的不同虚拟环境中使用jupyter notebook?我使用了conda install nb_conda_kernels 后,仍然无法切换想要的环境。


在jupyter notebook的Conda选项卡中,只有两个打勾的环境能被使用。

7956314f0ae34afaae5cabc09bca07ad.png

打算暂时放弃jupyter notebook,毕竟也不是必需,我可以继续使用我的pycharm。


好像,jupyter notebook还是挺有用的,特别是我现在还没有学会保存模型的情况下,每次运行代码都要重新训练一次。


关于在指定虚拟环境中运行jupyter notebook,这篇教程是可以跑通的: 在Anaconda虚拟环境下打开jupyter notebook 。

指定目录运行jupyter

分为以下几步:

  • 在目标目录启动cmd;
  • conda activate ,激活你安装了jupyter notebook的环境;
  • jupyter notebook ,启动notebook。

2) Keras版本

运行下面这段代码时报错了,

import keras
import numpy as np
# 构建模型
model = keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd', loss='mean_squared_error')
# 准备训练数据
xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)
# 训练模型
model.fit(xs, ys, epochs=500)
# 使用模型
print(model.predict([10.0]))

安装keras时,我直接pip install keras,然而tensorflowkeras的版本之前其实是有对应关系的,卸载keras重新下载对应的版本即可。版本关系参见:亲测解决导入Keras报错

3) 为什么accuracy为100%,迭代时参数还在更新?

这个问题可以回看一下交叉熵损失函数的公式(如何你是用的它的话)。


关键在于,

l o s s = S u m ( − 1 ∗ l o g ( 被 正 确 分 类 的 样 本 的 预 测 概 率 ) ) loss=Sum(-1*log(被正确分类的样本的预测概率))

loss=Sum(−1∗log(被正确分类的样本的预测概率))

只要模型输出的预测概率还没有变成100%,参数就会继续更新。


相关文章
|
6月前
|
TensorFlow 算法框架/工具
【tensorflow】- 知识点补充
【tensorflow】- 知识点补充
|
11月前
|
机器学习/深度学习 TensorFlow API
tensorflow从头再学1
tensorflow从头再学1
48 1
|
搜索推荐 大数据 PyTorch
推荐模型复现(一):熟悉Torch-RecHub框架与使用
Torch-RecHub是一个轻量级的pytorch推荐模型框架
776 0
推荐模型复现(一):熟悉Torch-RecHub框架与使用
|
PyTorch 算法框架/工具
pytorch使用方法积累
1. net.parameters()查看网络参数 2. torch.optim.lr_scheduler.MultiStepLR 2.1 学习率的参数配置
93 0
|
存储 数据可视化 PyTorch
学懂 ONNX,PyTorch 模型部署再也不怕!
在把 PyTorch 模型转换成 ONNX 模型时,我们往往只需要轻松地调用一句 torch.onnx.export 就行了。这个函数的接口看上去简单,但它在使用上还有着诸多的“潜规则”。在这篇教程中,我们会详细介绍 PyTorch 模型转 ONNX 模型的原理及注意事项。除此之外,我们还会介绍 PyTorch 与 ONNX 的算子对应关系,以教会大家如何处理 PyTorch 模型转换时可能会遇到的算子支持问题。
4294 0
学懂 ONNX,PyTorch 模型部署再也不怕!
|
机器学习/深度学习 TensorFlow API
Tensorflow 2.0的这些新设计,你适应好了吗?
几天前,Tensorflow刚度过自己的3岁生日,作为当前最受欢迎的机器学习框架,Tensorflow在这个宝座上已经盘踞了近三年。无论是成熟的Keras,还是风头正盛的pytorch,它的地位似乎总是无法被撼动。
1344 0
|
TensorFlow 算法框架/工具
|
算法 测试技术 TensorFlow
[译] 写给机器学习工程师:如何测试Tensorflow模型
## 引言 这篇文章来自斯坦福大学计算与数学工程所(Institute for Computational & Mathematical Engineering)博士生Guillaume Genthial的[博客](https://guillaumegenthial.github.io/testing.html)。主要介绍了如何将工程界里已经得到充分认可的单元测试实践应用到算法建模的领域中,
1965 0
|
机器学习/深度学习 TensorFlow 算法框架/工具
【干货】史上最全的Tensorflow学习资源汇总,速藏!
本篇文章将为大家总结Tensorflow纯干货学习资源,分为教程、视频和项目三大板块,非常适合新手学习,建议大家收藏。
6873 0
|
机器学习/深度学习 TensorFlow 算法框架/工具
【干货】史上最全的Tensorflow学习资源汇总
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 作者:AI小昕 在之前的Tensorflow系列文章中,我们教大家学习了Tensorflow的安装、Tensorflow的语法、基本操作、CNN的一些原理和项目实战等。
2387 0