TF中的卷积层实现
tf.nn.conv2dtf.nn.conv2d函数用于实现2D卷积运算 输入X:[b,h,w,cin] 卷积核W:[k,k,cin,cout] 输出O:[b,h',w',cout] 其中,cin表示输入通道数,cout表示卷积核的数量,也是输出特征图的通道数 卷积核大小为k*k 123456import tensorflow as tfx=tf.random.normal([2,5,5,3])#模拟输入,3通道,高宽为5,2张图片#需要根据[k,k,cin,cout]格式创建 W 张量(filter), 4 个 3x3 大小卷积核w=tf.random.normal([3,3,3,4])#步长为1,padding为0out=tf.nn.conv2d(x,w,strides=1,padding=[[0,0],[0,0],[0,0],[0,0]]) 1print(out.shape)#2是2张图片 1TensorShape([2, 3, 3,...
缺失的记忆
...
高层API:Keras
常见功能模块常见网络层类tf.keras.layers类中包含了全连接层、 激活函数层、 池化层、 卷积层、 循环神经网络层等常见网络层的类,可以直接使用这些类创建网络层,这里以softmax为例: 123import tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layers#导入常见网络层类 123x=tf.constant([2.,1.,0.1])layer=layers.Softmax(axis=-1)#创建softmax层out=layer(x)#调用softmax前向计算,输出为out 1out <tf.Tensor: shape=(3,), dtype=float32, numpy=array([0.6590012 , 0.24243298, 0.09856589],...
反向传播案例实战
说明我们将实现一个 4 层的全连接网络,来完成二分类任务。 网络输入节点数为 2,隐藏层的节点数设计为: 25、 50和25,输出层两个节点,分别表示属于类别 1 的概率和类别 2的概率,如下图所示 生成数据12from sklearn.datasets import make_moons from sklearn.model_selection import train_test_split 123N=2000test_size=0.3X,y=make_moons(n_samples=N,noise=0.2,random_state=100) 划分训练集和测试集1X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=test_size,random_state=42) 1print(X.shape,y.shape) (2000, 2) (2000,) 数据可视化1234import matplotlib.pyplot as...
反向传播算法推导
...
关于神经网络的哲学【HuLuan】思考
神经网络中有许多权重,每一个权重的变化都可能导致最终预测结果产生变动。为了最大可能获得较佳的预测结果,需要考虑合适的损失函数,激活函数以及优化器等,并通过训练,反反复复调整权重,直至得到满意的结果。 万象世间亦如是。 你所经历的每一件事,你所遇见的每一个人,于你而言都会在心中自动初始化一个权重。时间和事件会训练你的模型,为了最小化损失函数,也就是达成你的目的,你会一遍又一遍的采取措施来调整每一个权重。 不仅仅是你,每个人,每个生命,所有物质都在无时无刻的更新着自己的权重。于是地球围绕太阳转动,太阳东升西落,东西方产生时差,而现在,你正在阅读这些文字。 调整吧 就像歌中唱的那样:...
Tensorflow中的高级操作
tf.gather可以实现根据索引号收集数据 假设有4个班级,每班35人,共8门课程的成绩 举几个栗子 它等价于 但是对于不规则(连续)的索引,还是tf.gather()更强大 通过组合多个tf.gather,可以实现复杂一点的功能 现在,想要抽查第 2 个班级的第 2 个同学的所有科目, 第 3 个班级的第 3 个同学的所有科目,第 4 个班级的第 4 个同学的所有科目 这个更复杂了 可以这样 然后用stack()合并 但是还有更好的方法,那就是tf.gather_nd tf.gather_nd也是根据索引号收集数据,只不过比tf.gather更灵活些 继续上面的例子 变得简洁了,只需传入一个列表 再举个复杂点的栗子:选取1班的学生1的科目2、2班的学生2的科目3、班级3的学生3的科目4的成绩,共有3个成绩数据 tf.boollean_mask以掩码方式选取数据 这里的 tf.boolean_mask 的用法其实与 tf.gather 非常类似,只不过一个通过掩码方式采样,一个直接给出索引号采样 ...
Tensorflow进阶
张量合并1.拼接 2.堆叠 无论哪种方式,相应维度必须一致 分割合并的逆过程 将1个张量拆成多个张量 1. split等份分割 不等份分割传入列表,表示分割后每一部分的长度 2....













