
深度学习
文章平均质量分 54
深度学习
安安爸Chris
这个博客用于写自己兴趣所在的内容,主要是源码阅读和智能语音相关的。 我另一个博客主要写工作相关的,请参考https://www.jianshu.com/u/3f1c3f228fa5
展开
-
Moment矩计算公式
平均数与标准方差这两个数学概念大家都耳熟能详,九年义务教育都涵盖的内容.假设有数组x, x1,x2,x3…xn, N 为数组的个数公式如下:μ=ΣxNσ=Σ(x−μ)2N\mu = \frac{\Sigma x} {N} \newline \newline\sigma = \frac{\Sigma (x-\mu)^2} {N} μ=NΣxσ=NΣ(x−μ)2它也叫做一阶矩和二阶矩高阶矩三阶矩和四阶矩公式如下:3rdmoment=1NΣ(x−μ)3σ34thmoment=1N原创 2022-01-26 00:28:08 · 1877 阅读 · 1 评论 -
【tensorflow】tf.nn.embedding_lookup的使用
tf.nn.embedding_lookup即在给定的范围内做映射下面直接看例子样例1t = np.asarray([1,2,3,0])params = tf.constant([10,20,30,40])embedded_inputs = tf.nn.embedding_lookup(params, t)with tf.Session() as sess: print(sess.run(embedded_inputs))结果[20 30 40 10]可见结果即是按照t的顺原创 2022-01-17 16:12:01 · 1077 阅读 · 0 评论 -
查询服务器上几张显卡命令
命令1nvidia-smi --query-gpu=name --format=csv,noheaderGeForce GTX 1080 TiGeForce GTX 1080 Ti命令2nvidia-smi --list-gpusGPU 0: GeForce GTX 1080 Ti (UUID: GPU-8bcfc794-ade2-b2da-af64-0f000b6537b8)GPU 1: GeForce GTX 1080 Ti (UUID: GPU-2c84b169-56f0-b2d1-2原创 2022-01-12 21:06:51 · 4785 阅读 · 0 评论 -
【tensorflow】OP_REQUIRES failed at variable_ops.cc:104 Already exists: Resource
如下代码片段outputs = tf.keras.layers.Bidirectional(tf.keras.layers.GRU(units=half_depth, use_bias=False, return_sequences=True, return_state=False))(rnn_input)OP_REQUIRES failed at variable_ops.cc:104 Already exists: Resource在使用tensorflow 1.15版本原创 2022-01-09 00:17:22 · 1408 阅读 · 0 评论 -
[tensorflow] tf.name_scope和tf.variable_scope
name_scopeif __name__ == '__main__': with tf.name_scope("scope1"): v1 = tf.get_variable("var1", [1,2], dtype=tf.float32) v2 = tf.Variable(1, name="var2", dtype=tf.float32) v3 = tf.get_variable("var2", [1], dtype=tf.float32)原创 2022-01-07 16:58:08 · 1171 阅读 · 0 评论 -
使用pydub做静音帧去除
该脚本功能类似于sox的去除silence的命令,这里是使用pydub做的import osimport sysimport numpy as npfrom pydub import AudioSegmentN=20def usage(): print("batch_trim_silence <speech path>")def trim_silence(f): speech = AudioSegment.from_file(file=f, sample_wi原创 2021-05-26 17:27:41 · 1217 阅读 · 2 评论 -
【numpy】协方差计算
numpy中计算方差/协方差的函数 cov公式cov(X,Y)=∑i=1n(Xi−Xˉ)(Yi−Yˉ)N−1cov(X,Y)= \cfrac{\sum_{i=1}^n(X_i-\bar{X})(Y_i-\bar{Y})} {N-1}cov(X,Y)=N−1∑i=1n(Xi−Xˉ)(Yi−Yˉ)X,Y为等长的两个数组结果为一个2X2的矩阵,cov(X,Y)={cov(X,X)cov(X,Y)cov(Y,X)cov(Y,Y)}cov(X,Y)=\begin{Bmatrix} co原创 2021-07-07 14:47:54 · 1850 阅读 · 3 评论 -
【puthon】把大量csv文件写入h5文件制作数据集
背景每一个样本的数据被写入了一个csv中,在制作数据集时,需要先将大量的csv文件写入到一个h5文件中样例代码import osimport sysimport h5pyimport numpy as np'''arg[1]: bins file folder patharg[2]: x of shapearg[3]: y of shapearg[4]: h5 file name '''if len(sys.argv) != 5: exit(-1)data_fold原创 2021-03-18 20:18:26 · 1206 阅读 · 0 评论 -
【numpy】tensordot的用法研究
API文档https://numpy.org/doc/stable/reference/generated/numpy.tensordot.html文档说的过于晦涩,下面以实际例子来研究一下样例1 axis=0 (叉乘运算)m1=np.array([0.1,0.2,0.3, 0.4,0.5,0.6])m2=np.array([-0.1, -0.1, 0.1, 0.1, 0.2,0.2])m1=m1.reshape((2,.原创 2021-04-09 16:07:12 · 2252 阅读 · 1 评论 -
Flask+gunicorn部署HTTP服务
FLASKFlask提供了HTTP开发服务的框架,但是他本身不提供HTTP Server。内部集成的一个简单的Server只是用于开发调试。Flask内部的HTTP服务只用于开发使用,在启动Flask run 的时候,也有提示:WARNING: This is a development server. Do not use it in a production deployment因为Flask不能提供一个稳定健壮的HTTP Server,所以HTTP Service必须依赖一个稳定的WSGI(原创 2021-07-21 19:58:07 · 826 阅读 · 0 评论 -
【numpy】几种fft函数的使用
numpy下fft模块提供了丰富的fft函数,几种常用的在这里记录一下使用方式fft输入实数samples,如果输入的sample是带虚数部分的话,虚数部分会被默认删除。t=np.arange(12)b=np.sin(t)print(b)print("sum(b)=", np.sum(b))s = np.fft.fft(b)print(s)运行结果截图如下从图中可以看到,[0]是一个实数,实数部分是所有input中各个元素之和。[i]与[N-i]共轭;输入的N如果是偶数,那么原创 2021-07-07 16:28:18 · 16338 阅读 · 1 评论 -
【python】【h5py】TypeError: Can‘t convert element to hsize_t
错误如下:在使用h5py时创建h5文件时,遇到TypeError: Can’t convert element to hsize_t我这里的原因是,因为在指定shape的时候,输入了字符串数字。h5f = h5py.File(sys.argv[4], 'w')dset = h5f.create_dataset('bins', (total_count,sys.argv[2],sys.argv[3]))shape是sys.argv[2],sys.argv[3]入参传入的,但是它是字符型,所以导原创 2021-03-18 20:03:28 · 769 阅读 · 0 评论 -
【tensorflow】tf.nn.conv2d的使用
官方文档地址 https://www.tensorflow.org/api_docs/python/tf/nn/conv2d接口如下tf.nn.conv2d(input, filters, strides, padding, data_format=‘NHWC’, dilations=None,name=None)input为入参,其shape必须为4维的,其中每一维度含义如下N:Batch NumberH:HeightW:WidthC:Num of Channles但是顺.原创 2021-04-17 15:12:05 · 2942 阅读 · 3 评论 -
BatchNormalization对cnn训练的影响
在其他参数基本一致的情况下,单独调整batchsize,来查看一下对训练的影响.记录下不同batch normalization位置情况下最终训练model在test集上测试的结果训练模型下面是一个训练模型的summary,我将在此模型下修改batch size然后观察数据变化这个是之前的训练网络,分别在三个地方加入Batch Normalizatioin来看一下效果。加在第一层加在第二层加在第三层不敢妄称结论,但从现象来看,似乎Batch Normalizatioin加在网络的后面原创 2021-06-11 11:34:07 · 261 阅读 · 0 评论 -
【记录】batch_size对cnn训练的影响
在其他参数基本一致的情况下,单独调整batchsize,来查看一下对训练的影响.记录下不同batch_size情况下在Epoch下loss的变化率训练模型下面是一个训练模型的summary,我将在此模型下修改batch size然后观察数据变化batch_size不同的batch_size会导致不同的收敛速度和每一个epoch的训练时长下图是batch_size=64的训练截图数据结果针对不同的batch size,做epoch10次训练下的数据统计,数据如下:batch越小,每一原创 2021-06-05 15:31:00 · 869 阅读 · 0 评论 -
【Keras】The added layer must be an instance of class Layer.
背景本人使用keras 2.2 + tensorflow 1.14 遇到如下问题The added layer must be an instance of class Layer. Found: Tensor("input_1:0", shape=(?, 300, 5, 2), dtype=float32)代码Keras代码如下:代码如下:model = Sequential( [ Input(shape=(300, 5, 2)), Conv2D(10,原创 2021-05-30 16:04:39 · 4123 阅读 · 1 评论 -
【tensorboard】从tensorboard上看出模型是否存在过拟合
tensorboard还是一个很好的工具,可以图形化看到训练模型相关的数据SCALARS一些指标数据的趋势图,比如accuracy,loss等这个图比较直观,也简单易懂下图为epoch accuracy趋势图样例GRAPHSmodel的计算图,基本反应出model中的各个layer和计算过程,下图为model的graphs样例HISTOGRAMS直方图,它反馈的是每一轮batch中的参数分布情况其中,x轴为训练出的参数值范围,y轴为分布出现的次数,次数越多,y轴就越原创 2021-05-21 11:02:57 · 1443 阅读 · 0 评论 -
使用pydub实现训练声音数据集加噪
import osimport sysimport random as rdimport uuidimport timefrom pydub import AudioSegmentimport numpy as npdef usage(): print("batch_speech_plus_noise <speech path> <noise path> <output path> <mix type>\n" "mi原创 2021-05-20 11:31:34 · 646 阅读 · 0 评论 -
如何为Keras中的深度学习模型建立Checkpoint
转载于https://cloud.tencent.com/developer/article/1049579,如有侵权,请联系 chris.zhang@wiz.ai 删除深度学习模式可能需要几个小时,几天甚至几周的时间来训练。如果运行意外停止,你可能就白干了。在这篇文章中,你将会发现在使用Keras库的Python训练过程中,如何检查你的深度学习模型Checkpoint神经网络模型应用程序Checkpoint是为长时间运行进程准备的容错技术。这是一种在系统故障的情况下拍摄系统状态快照的方法.转载 2021-05-20 09:41:04 · 1228 阅读 · 0 评论 -
云环境上如何使用tensorboard
笔者使用的是华为云,在云上使用tensorflow做训练。训练的log使用tensorboard查看时,在公网上查看时遇到了一点点问题。记录一下问题的解决。1. 为云服务器购买公网IP如果云服务器只有内网,那么在公网肯定是访问不了的2. 安全组开放端口tensorboard默认端口为6006,需要在安全组里把这个端口放开。把TCP/UDP 6006放开3. tensorboard命令参数bind_all调用tensorboard命令时,加上bind_alltensorboard --lo原创 2021-05-20 09:16:17 · 2131 阅读 · 0 评论 -
【keras】A `Concatenate` layer should be called on a list of at least 2 inputs
下面有一段两个Sequential的model连接一起的例子代码如下,from keras.models import Sequentialfrom keras.layers.core import Densefrom keras.layers import Concatenateimport numpy as npleft_branch = Sequential()left_branch.add(Dense(32, input_dim=1))right_branch = Sequen原创 2021-05-07 15:19:48 · 2319 阅读 · 0 评论 -
【keras】rnn中的LSTM
keras rnn中常见的rnn layer1. LSTMLSTM内部结构如下,公式为input gate:it=σ(Wixt+Uih(t−1))forget gate:ft=σ(Wfxt+Ufh(t−1))output :ot=σ(Woxt+Uoh(t−1))New memorycell:c~t=tanh(Wcxt+Ucxt)Final memorycell:ct原创 2021-03-29 19:52:43 · 268 阅读 · 0 评论 -
【rnnoise快速体验】rnnoise从编译到训练
运行环境为Ubuntu18.04C部分下载源码从github上下载源码,目前只有master分支,就拿master分支下来。准备编译环境干净的linux环境可能会没有安装gcc等编译工具所以要把下列编译所需的东西装好‘’’apt-get install build-essentialapt-get install autoconf libtool‘’’编译rnnoise的C部分源码unzip rnnoise-master.zipcd rnnoise-master.原创 2021-03-28 16:38:59 · 4189 阅读 · 1 评论 -
mnist学习实例(2)
环境: Ubuntu 18.04, tensorflow 2.4.1该版本是全连接网络的优化版本,采用了卷积神经网络,参考。可以看到BATCH_SIZE没有改动,而EPOCH明显减少。但是EPOCH一轮的时间明显增长了很多。import tensorflow as tfimport numpy as npfrom tensorflow import kerasEPOCH = 15BATCH_SIZE = 128VERBOSE = 1NUM_CLASSES = 10# the .原创 2021-03-22 20:44:04 · 280 阅读 · 0 评论 -
【keras】Input 0 of layer conv2d is incompatible with the layer. expected ndim=4, found ndim=3
在构建卷积神经网络时,遇到了这个错误ValueError: Input 0 of layer conv2d is incompatible with the layer: expected ndim=4, found ndim=3.这是说conv2d(卷积层)的输入和这一层不兼容,期望的维度是4,实际给的是3。这一层的维度是, (样本个数,长度,宽度,灰度),我们在导入训练数据时,如果数据没有指定灰度,也要给一个默认值。也就是要默认增加一维。x_train = np.expand_dims(x_tr原创 2021-03-22 20:31:43 · 6314 阅读 · 2 评论 -
mnist学习实例(1)
环境: Ubuntu 18.04, tensorflow 2.4.1mnist是Yann Lecun大神的手写数据,数据中的数字都是28X28的图像,每个像素点是[0-255]的值其中训练数据为60000,测试数据为10000打印出数字看一下def show_mnist(images, labels): n = 5 m = 5 for i in range(n): for j in range(m): plt.subplot(n, .原创 2021-03-14 12:21:56 · 566 阅读 · 1 评论 -
scipy.cluster.vq.kmeans的使用
scipy.cluster.vq.kmeans(obs, k_or_guess, iter=20, thresh=1e-05, check_finite=True)对形成k个群集的一组观察向量执行k均值。k均值算法将观测值的分类调整为聚类,并更新聚类质心,直到质心的位置在连续迭代中保持稳定为止。 在算法的这种实现中,质心的稳定性是通过将观测值及其对应质心之间的平均欧几里德距离的变化的绝对值与阈值进行比较来确定的。 这样便产生了一个将质心映射到代码的codebook,反之亦然。参数obsM×N阵列原创 2020-08-06 16:26:02 · 4185 阅读 · 3 评论 -
numpy中的cov(方差计算)简单介绍
协方差矩阵的计算公式可以参考这一篇博文协方差矩阵官方文档介绍简单使用介绍有下面一个例子,计算数组[1,2,3]和[1,1,1]的协方差矩阵import numpy as npX = np.array([1,2,3])Y = np.array([1,1,1])A = np.stack((X, Y), axis=0)print("source:\n", A)print("cov:\n", np.cov(A))结果如下:也可以根据公式自己实现这一函数import numpy a原创 2020-06-02 15:34:49 · 2452 阅读 · 0 评论