- 博客(17)
- 收藏
- 关注
原创 python安装tensorflow流程
在anaconda 中依次输入 conda create -n tensorflow python=3.7 conda activate tensorflow conda install pytorch1.2.0 torchvision0.4.0 cudatoolkit=10.0 -c pytorch 第一句是创建tensorflow虚拟环境; 第二句是激活(进入)虚拟环境; 第三句是安装tensorflow。 为了更快的创建环境,安装库可使用清华镜像,以下步骤要在上面步骤开始前进行。 conda conf
2020-09-02 22:22:12
686
1
原创 keras运行 load_model 时出现name error :xxx is not defined
出现错误 用keras写了一个model,训练之后保存model;然后在另一个程序中使用改model进行结果预测。 分析 简单来说,就是load_model时报错:xxx is not defined,这个xxx可能是你在定义model时用到的变量、函数、或者layer等。最后一行显示了,我在定义model时用到了自定了函数slice_for_merge,这属于第三方对象,出现了undefine错误。 解决 意思是说:在load_model()时,如果要加载的模型包含自定义层或其他自定义类或函数,则可以通过
2020-07-13 13:41:48
6228
转载 Keras中concatenate和add层的不同
转载:https://blog.youkuaiyun.com/u012193416/article/details/79479935?utm_source=blogxgwz4 add示例: import keras input1 = keras.layers.Input(shape=(16,)) x1 = keras.layers.Dense(8, activation='relu')(input1) input2 = keras.layers.Input(shape=(32,)) x2 = keras.layer
2020-06-29 16:44:47
671
原创 Python 三维数组拼接方式
a=[0 1 2] b=[10 11 12] 1.最基本的函数:concatenate np.concatenate((a,b)) # 默认axis=0 array([ 0, 1, 2, 10, 11, 12]) 2.vstack:垂直连接数组(axis=0) np.vstack((a,b)) array([[ 0, 1, 2], [10, 11, 12]]) 3.hstack:水平连接数组(axis=1) np.hstack((a,b)) array([ 0, 1, 2, 10, 11, 12
2020-06-28 21:56:51
2024
转载 LSTM结构
cell 里面有四个黄色小框,你如果理解了那个代表的含义一切就明白了,每一个小黄框代表一个前馈网络层,对,就是经典的神经网络的结构,num_units就是这个层的隐藏神经元个数,就这么简单。其中1、2、4的激活函数是 sigmoid,第三个的激活函数是 tanh。另外几个需要注意的地方: 1、 cell 的状态是一个向量,是有多个值的。。。一开始没有理解这点的时候怎么都想不明白 2、 上一次的状态 h(t-1)是怎么和下一次的输入 x(t) 结合(concat)起来的,这也是很多资料没有明白讲的地方,也很.
2020-06-20 10:09:21
477
原创 Python multiply使用
multiply(a,b)是个a和b的乘法。 如果a,b是两个数组,那么对应元素相乘。如果a和b的shape不一样,就会采用广播。
2020-06-19 15:54:50
1414
转载 Keras的Dot类
转载:https://blog.youkuaiyun.com/u013887652/article/details/89961950
2020-06-19 10:11:04
294
原创 numpy创建三维数组
1、创建二维数组 import numpy as np a = [1, 2, 3] ; b = [4, 5, 6]; c = [7, 8, 9] w1 = np.array( [a,b,c] ) # 多个一维数组,一行一行堆叠 print(w1) # 结果: [[1 2 3] [4 5 6] [7 8 9]] 2、创建三维数组 两个二维数组的堆叠形成三维数组。 a.(2,3,3) import numpy as np a = [1, 2, 3] ; b = [4, 5, 6]; c = [7,
2020-06-19 09:58:46
16843
原创 np.concatenate和axis=0/1的介绍
a=np.array([1,2,3]) b=np.array([11,22,33]) c=np.array([44,55,66]) np.concatenate((a,b,c),axis=0) # 默认情况下,axis=0可以不写 array([ 1, 2, 3, 11, 22, 33, 44, 55, 66]) #对于一维数组拼接,axis的值不影响最后的结果 a=np.array([[1,2,3],[4,5,6]]) b=np.array([[11,21,31],[7,8,9]]...
2020-06-19 09:34:42
2586
1
原创 keras.layers层dot维度计算的一些介绍
axis和shape关系: axes是整数或者tuple(之前在dot中前部分已经处理好了),axes就是要进行点乘的维度,也就是计算后减少/消失的那个维度。 输出张量的shape是两个输入张量的shape进行concatenate得到的:但把a张量的axes维度去除了,b张量的batch维度和axes维度去除了。 看下面的例子,a.shape=(100, 20),b.shape=(100, 30, 20),axes=(1, 2),则张量a的维度1和b的维度2进行点乘,输出张量output.shape=(1
2020-06-19 09:22:01
2601
原创 Python里 shape(2,)和(2,1)的区别
shape值(2,),意思是一维数组,数组中有2个元素。 a = np.array([1,2]) a.shape 输出为(2,)。 **注意:**从行列的角度看,这个一维向量既可以是行,也可以是列。比如 W.shape = (2, 4), x.shape = (2, ) np.dot(W.T, x):此时x是列向量, np.dot(x, W) 此时 x 是行向量,两种情况下返回的也均是一维向量,无所谓行列的概念。 shape值是(2,1),意思是一个二维数组,每行有1个元素。 a = np.array([
2020-06-18 17:35:10
2729
原创 metric的选择
回归指标 explained_variance_score(y_true, y_pred, sample_weight=None, multioutput=‘uniform_average’):回归方差(反应自变量与因变量之间的相关程度) mean_absolute_error(y_true,y_pred,sample_weight=None, multioutput=‘uniform_average’): 平均绝对误差 mean_squared_error(y_true, y_pred, sample_w
2020-06-17 10:37:23
365
原创 batch_size调参经验
batch_size以128为界限,向下(×0.5)和向上(×2)训练后比较测试结果,若向下结果更好,则继续×0.5,直到结果不再提升。 例:语音(batch=8),画面(batch=32),自然语言(batch=16) 例:某多语音信号,batch=1最好,可训练时间太长。 调参也有空间和时间的限制:大的batch_size受限于空间;小的batch_size受限于时间。 ...
2020-06-16 22:41:29
553
转载 LSTM调参经验
大家可参考: https://blog.youkuaiyun.com/audio_algorithm/article/details/89915816
2020-06-16 22:25:02
1279
原创 验证集loss振荡很厉害怎么回事?
原因:batch_size可能太小。 增大batch_size ,震荡逐渐消失,同时在测试集的acc也提高了。但batch_size增加到一定程度时,训练集acc会小于测试集,模型欠拟合,这时,需要继续增大epoch。 总结 增大batchsize的好处有三点: 1)内存的利用率提高了,大矩阵乘法的并行化效率提高。 2)跑完一次epoch(全数据集)所需迭代次数减少,对于相同的数据量的处理速度进一步加快,但是达到相同精度所需要的epoch数量也越来越多。由于这两种因素的矛盾, batch_Size 增大
2020-06-16 19:56:07
22474
4
原创 验证集loss为什么比训练集loss小?
有以下几种情况可以考虑: 在线程中,Aurélien简洁明了地解释了训练深度神经网络时验证损失可能低于训练损失的三个原因: 原因1:在训练期间应用正则化,但在验证/测试期间未进行正则化。如果在验证/测试期间添加正则化损失,则损失值和曲线将看起来更加相似。 原因2:训练损失是在每个epoch期间测量的,而验证损失是在每个epoch后测量的。平均而言,训练损失的测量时间是前一个时期的1/2。如果将训练损失曲线向左移动半个epoch,则损失会更好。 原因3:您的验证集可能比训练集更容易,或者代码中的数据/错误泄漏
2020-06-16 19:33:45
11434
原创 解决:pip 安装 rsa, pymongo 出错问题
pip安装rsa,pymongo出错, 两者解决方法一样,以pymongo为例。 pip install pymongo时,有时会出现以下错误: ERROR: Could not find a version that satisfies the requirement pymongo (from versions: none) ERROR: No matching distribution fo...
2020-04-15 10:14:22
1040
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅