numpy:np.abs到底是如何工作的?

我正在尝试为Go中的gonum密集向量实现自己的绝对函数。 我想知道是否有比平方和平方根更好的方法来获取数组的绝对值?</ p>

我的主要问题是我必须明智地实现自己的元素 这些向量上的牛顿平方根函数,实现速度和准确性之间保持平衡。 如果我可以避免使用此平方根函数,那我会很高兴的。</ p>
</ div>

展开原文

原文

I'm trying to implement my own absolute function for gonum dense vectors in Go. I'm wandering if there's a better way of getting the absolute value of an array than squaring and then square rooting?

My main issue is that I've had to implement my own element wise Newtonian square-root function on these vectors and there's a balance between implementation speed and accuracy. If I could avoid using this square-root function I'd be happy.

1个回答

NumPy source code can be tricky to navigate, because it has so many functions for so many data types. You can find the C-level source code for the absolute value function in the file scalarmath.c.src. This file is actually a template with function definitions that are later replicated by the build system for several data types. Note each function is the "kernel" that is run for each element of the array (looping through the array is done somewhere else). The functions are always called <name of the type>_ctype_absolute, where <name of the type> is the data type it applies to and is generally templated. Let's go through them.

/**begin repeat
 * #name = ubyte, ushort, uint, ulong, ulonglong#
 */

#define @name@_ctype_absolute @name@_ctype_positive

/**end repeat**/

This one is for unsigned types. In this case, the absolute value is the same as np.positive, which just copies the value without doing anything (it is what you get if you have an array a and you do +a).

/**begin repeat
 * #name = byte, short, int, long, longlong#
 * #type = npy_byte, npy_short, npy_int, npy_long, npy_longlong#
 */
static void
@name@_ctype_absolute(@type@ a, @type@ *out)
{
    *out = (a < 0 ? -a : a);
}
/**end repeat**/

This one is for signed integers. Pretty straightforward.

/**begin repeat
 * #name = float, double, longdouble#
 * #type = npy_float, npy_double, npy_longdouble#
 * #c = f,,l#
 */
static void
@name@_ctype_absolute(@type@ a, @type@ *out)
{
    *out = npy_fabs@c@(a);
}
/**end repeat**/

This is for floating-point values. Here npy_fabsf, npy_fabs and npy_fabsl functions are used. These are declared in npy_math.h, but defined through templated C code in npy_math_internal.h.src, essentially calling the C/C99 counterparts (unless C99 is not available, in which case fabsf and fabsl are emulated with fabs). You might think that the previous code should work as well for floating-point types, but actually these are more complicated, since they have things like NaN, infinity or signed zeros, so it is better to use the standard C functions that deal with everything reliably.

static void
half_ctype_absolute(npy_half a, npy_half *out)
{
    *out = a&0x7fffu;
}

This is actually not templated, it is the absolute value function for half-precision floating-point values. Turns out you can change sign by just doing that bitwise operation (set the first bit to 0), since half-precision is simpler (if more limited) than other floating-point types (it's usually the same for those, but with special cases).

/**begin repeat
 * #name = cfloat, cdouble, clongdouble#
 * #type = npy_cfloat, npy_cdouble, npy_clongdouble#
 * #rtype = npy_float, npy_double, npy_longdouble#
 * #c = f,,l#
 */
static void
@name@_ctype_absolute(@type@ a, @rtype@ *out)
{
    *out = npy_cabs@c@(a);
}
/**end repeat**/

This last one is for complex types. These use npy_cabsf, npycabs and npy_cabsl functions, again declared in npy_math.h but in this case template-implemented in npy_math_complex.c.src using C99 functions (unless that is not available, in which case it is emulated with np.hypot).

dta25920
dta25920 是的,总的来说,你可以这么说。
一年多之前 回复
douying0108
douying0108 谢谢! 那是一个非常详尽和彻底的答案。 我现在知道一些我不知道需要知道的东西! 因此,这确实比我想象的要多。 因此,如果我理解正确,它们中的每一个的主要区别是它们处理不同的数据类型,但是从本质上讲,它们(几乎)都对循环遍历数组进行了非常低的级别和快速的转换并将每个元素与0进行比较?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
np.where的用法 np.array(np.where(a == 1))的输出问题

y - 实际的标签 p - 预测 p = [[1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 0. 1. 0. 0. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 0. 1. 1. 0. 1. 0. 0.]] y=[[1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0]] a = [[2. 2. 2. 2. 2. 1. 1. 2. 2. 2. 2. 2. 2. 1. 0. 2. 0. 2. 2. 1. 2. 0. 0. 2. 2. 2. 2. 0. 1. 1. 2. 2. 2. 2. 1. 0. 0. 2. 0. 0. 2. 2. 2. 0. 1. 1. 1. 2. 1. 0.]] a = p + y mislabeled_indices = np.array(np.where(a == 1)) 为什么输出的mislabeled_indices = [[ 0 0 0 0 0 0 0 0 0 0 0] [ 5 6 13 19 28 29 34 44 45 46 48]] 怎么是(2,x)的列表? 第0行为什么都是0?

如何解决numpy.ndarray' object is not callable

我用python进行非线性规划时报错numpy.ndarray' object is not callable,有大佬可以帮忙解释一下吗 直到最后一句res=minimize。。。才报错,之前检查过都没有问题 ``` from scipy.optimize import minimize import numpy as np def fun(): v=lambda x:abs((x(1)+0*x(2)+0*x(3)+0*x(4)+0*x(5)+0*x(6)+0*x(7)+0*x(8)+0*x(9)+0*x(10)+0*x(11)+0*x(12)+0*x(13)+0*x(14))) return v def cons(): # d,e=args con=({'type':'eq','fun':lambda x: x(1)-(2171.4/0.85*x(2))}, {'type': 'eq', 'fun': lambda x: (x(5)*x(6)*89.496/6.28)-x(7)-x(8)}, {'type': 'eq', 'fun': lambda x: x(9)*x(10)-x(10)*x(11)-x(8)*x(11)}, {'type': 'eq', 'fun': lambda x: x(12) - x(13)+x(11)}, {'type': 'eq', 'fun': lambda x: x(10) - 12500*3.1415}, {'type': 'ineq', 'fun': lambda x: x(6) - x(14)}, {'type': 'ineq', 'fun': lambda x: x(3) - x(4)-2.45}, {'type': 'eq', 'fun': lambda x: x(14) - 12.14*3.1415}, {'type': 'ineq', 'fun': lambda x: x(4) - 2.45}, {'type': 'ineq', 'fun': lambda x: 97.55 - x(4)}, {'type': 'ineq', 'fun': lambda x: x(3) }, {'type': 'ineq', 'fun': lambda x: 95.1 - x(3)}, {'type': 'ineq', 'fun': lambda x: x(5)-2.45-x(4)}, {'type': 'ineq', 'fun': lambda x: 100-x(5)} ) return con a=fun() b=cons() # print(b) x0=np.asarray([3,4,3,2,3,4,3,2,3,4,3,2,3,2]) bounds=((0,None),(0,None),(0,None),(0,None),(0,None),(0,None),(0,None),(0,None),(0,None),(0,None),(0,None),(0,None),(0,None),(0,None)) res=minimize(a,x0,method='SLSQP',constraints=b,bounds=bounds) print(res) print(b) ```

np.where这个函数不太理解

>>> aa = np.arange(10) >>> np.where(aa,1,-1) array([-1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) # 0为False,所以第一个输出-1 疑问1,where函数的第一个参数为条件,把序列当成条件是什么意思?条件不是大于小于等这一类的吗?总之结果怎么来的 >>> np.where([[True,False], [True,True]], [[1,2], [3,4]], [[9,8], [7,6]]) array([[1, 8], [3, 4]]) 疑问2,[[True,False], [True,True]]为条件,满足条件输出 [[1,2], [3,4]],不满足输出 [[9,8], [7,6]]。(where函数的用法是这样的),结果是怎么来的 >>> np.where([[0, 1], [1, 0]]) (array([0, 1]), array([1, 0])) 上面这个例子条件中[[0,1],[1,0]]的真值为两个1,各自的第一维坐标为[0,1],第二维坐标为[1,0] 。 疑问3,这个结果和解释到底怎么来的 >>> a = np.arange(27).reshape(3,3,3) >>> a array([[[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8]], [[ 9, 10, 11], [12, 13, 14], [15, 16, 17]], [[18, 19, 20], [21, 22, 23], [24, 25, 26]]]) >>> np.where(a > 5) (array([0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2]), array([2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2])) 疑问4 这个结果得到的索引值也是完全看不懂

python 这样获取信号的频率是可以的,但是不知道振幅和相位为什么不对啊?

``` #!/usr/bin/env python # -*- coding: utf-8 -*- """ @author: akon """ from __future__ import division import matplotlib.pyplot as pl import numpy as np from scipy.signal import butter, lfilter import wave import struct def band_pass(freq,sig,Fs,N): fft_sig = np.fft.rfft(sig,N)/N freqs=np.fft.fftfreq(len(fft_sig)) nyq=0.5*Fs j=0 signature=[None]*len(freq) for i in freq: print i low=(i-10)/nyq high=(i+30)/nyq b,a=butter(6,[low,high],btype='band') signature[j]=lfilter(b,a,sig) j=j+1 #print(signature) return signature def freq_amp(sig,N,Fs): fft_sig = np.fft.rfft(sig)/len(sig) freqs=np.fft.fftfreq(len(fft_sig)) amp=2*np.abs(fft_sig) fft_amp=np.where(amp>0.3,1,0) print fft_amp #idx = [None] * N j=0 m=0 n=0 q=0 indx=[None]*len(fft_sig) for i in range(len(fft_sig)):###获取振幅为1的下标数组,并且唯一 if((fft_amp[i]==1) and(fft_amp[i-1]-fft_amp[i]<0)): indx[j]=i j=j+1 freq=[None]*j amplitude=[None]*j phase=[None]*j for k in range(j):###根据频谱振幅的下标获取频率,振幅 freq[m]=indx[k]*Fs/N #freq=abs(freqs[indx[k]]*framerate) print indx[k] m=m+1 amplitude[n]=2*np.abs(fft_sig[indx[k]]) n=n+1 phase[q]=np.rad2deg(np.angle(fft_sig[indx[k]])) q=q+1 print freq,amplitude,phase return freq,amplitude,phase,indx,j #def open(path): # wav_file= wave.open(path, 'rb') # Fs = wav_file.getframerate() # params = wav_file.getparams() # nchannels, sampwidth, framerate, nframes = params[:4] # data=wav_file.readframes(nframes) # wav_file.close() # data = struct.unpack('{n}h'.format(n=nframes), data) # data = np.array(data) # return Fs,data,framerate if __name__ == '__main__': Fs = 6000 T_interval = 1/Fs Freq_max = Fs/2 N=1024 t = np.arange(0,N-1)*T_interval freq = np.linspace(0,Freq_max,N/2+1) sig = np.sin(500*np.pi*t)+np.sin(1000*2*np.pi*t)+np.sin(2500*2*np.pi*t) freq,amplitude,phase,index,number=freq_amp(sig,N,Fs) signature=band_pass(freq,sig,Fs,N) ```

tensorflow环境下只要import keras 就会出现python已停止运行?

python小白在写代码的时候发现只要import keras就会出现python停止运行的情况,目前tensorflow版本1.2.1,keras版本2.1.1,防火墙关了也还是这样,具体代码和问题信息如下,请大神赐教。 ``` # -*- coding: utf-8 -*- import numpy as np from scipy.io import loadmat, savemat from keras.utils import np_utils 问题事件名称: BEX64 应用程序名: pythonw.exe 应用程序版本: 3.6.2150.1013 应用程序时间戳: 5970e8ca 故障模块名称: StackHash_1dc2 故障模块版本: 0.0.0.0 故障模块时间戳: 00000000 异常偏移: 0000000000000000 异常代码: c0000005 异常数据: 0000000000000008 OS 版本: 6.1.7601.2.1.0.256.1 区域设置 ID: 2052 其他信息 1: 1dc2 其他信息 2: 1dc22fb1de37d348f27e54dbb5278e7d 其他信息 3: eae3 其他信息 4: eae36a4b5ffb27c9d33117f4125a75c2 ```

就剩这个问题没解决了:TypeError: 'function' object is not subscriptable拜托请教大家!

![图片说明](https://img-ask.csdn.net/upload/201912/07/1575709842_231822.png)![图片说明](https://img-ask.csdn.net/upload/201912/07/1575709860_77315.png) import pandas as pd import numpy as np from GM11 import GM11 # 引入自己编写的灰色预测函数 data = pd.read_csv('D:\\软件\\python\\《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\' '《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\数据及代码\\chapter13\\test\\data\\data1.csv',engine='python') data.index = range(1994,2014) data data.loc[2014] = None data.loc[2015] = None h = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7'] P = [] C = [] for i in h: gm = GM11(data[i][:-2].values)[0] # 利用返回的灰色预测函数,仅和对对应期数及位置有关 f = gm([0] ) ##获得灰色预测函数 P = gm[-1] # 获得小残差概率 C = gm[-2] # 获得后验比差值 data[i][2014] = f(len(data) - 1) data[i][2015] = f(len(data)) data[i] = data[i].round(2) if (C < 0.35 and P > 0.95): # 评测后验差判别 print( '对于模型%s,该模型精度为---好' % i) elif (C < 0.5 and P > 0.8): print('对于模型%s,该模型精度为---合格' % i) elif (C < 0.65 and P > 0.7): print('对于模型%s,该模型精度为---勉强合格' % i) else: print('对于模型%s,该模型精度为---不合格' % i) data[h + ['y']].to_excel('D:\\软件\\python\\《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\' '《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\\数据及代码\\chapter13\\test\\data\\2_1_2_1greyPredict(最新5).xlsx') 补充: gm为自定义函数: def GM11(x0): #自定义灰色预测函数 import numpy as np x1 = x0.cumsum() #1-AGO序列 z1 = (x1[:len(x1)-1] + x1[1:])/2.0 #紧邻均值(MEAN)生成序列 z1 = z1.reshape((len(z1),1)) B = np.append(-z1, np.ones_like(z1), axis = 1) Yn = x0[1:].reshape((len(x0)-1, 1)) [[a],[b]] = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Yn) #计算参数 f = lambda k: (x0[0]-b/a)*np.exp(-a*(k-1))-(x0[0]-b/a)*np.exp(-a*(k-2)) #还原值 delta = np.abs(x0 - np.array([f(i) for i in range(1,len(x0)+1)])) C = delta.std()/x0.std() P = 1.0*(np.abs(delta - delta.mean()) < 0.6745*x0.std()).sum()/len(x0) return f, a, b, x0[0], C, P #返回灰色预测函数、a、b、首项、方差比、小残差概率

用python试MFCC, 不同的方法结果不同,请哪位大侠帮忙看看

刚开始学习MFCC,从网上找了两种方法,求MFCC,试用了下,发现结果完全不同,请高手帮忙解释,或能给出正确结果: 代码如下 : import numpy as np from scipy import signal from scipy.fftpack import dct import pylab as plt import librosa def enframe(wave_data, nw, inc, winfunc): '''将音频信号分帧。 参数含义: wave_data:原始音频型号 nw:每一帧的长度(这里指采样点的长度,即采样频率乘以时间间隔) inc:相邻帧的间隔 ''' wlen=len(wave_data) #信号总长度 if wlen<=nw: nf=1 else: nf=int(np.ceil((1.0*wlen-nw+inc)/inc)) pad_length=int((nf-1)*inc+nw) #所有帧加起来总的铺平后的长度 print(wlen,nf, pad_length) zeros=np.zeros((pad_length-wlen,)) #不够的长度使用0填补 pad_signal=np.concatenate((wave_data,zeros)) #填补后的信号 indices=np.tile(np.arange(0,nw),(nf,1))+np.tile(np.arange(0,nf*inc,inc),(nw,1)).T #相当于对所有帧的时间点进行抽取,得到nf*nw长度的矩阵 indices=np.array(indices,dtype=np.int32 #indices 为pad_signal的位置 frames=pad_signal[indices] #得到帧信号 win=np.tile(winfunc,(nf,1)) #window窗函数,这里默认取1 return frames*win #返回帧信号矩阵 Df=5 #采样点时间间隔 fs=8000 #采样频率 N=fs/Df #采样点数 t = np.arange(0,(N-1)/fs,1/fs) #取样时间 wave_data=np.sin(2*np.pi*200*t) # 待处理的信号 #预加重 b,a = signal.butter(1,1-0.97,'high') emphasized_signal = signal.filtfilt(b,a,wave_data) #归一化 lifts=[] for n in range(1,13): lift =1 + 6 * np.sin(np.pi * n / 12) lifts.append(lift) #分帧、加窗 winfunc = signal.hamming(256) #汉明窗 #分帧函数:每帧长度256 ,不重叠长度80: X=enframe(wave_data, 256, 80, winfunc) frameNum =X.shape[0] #获取分帧后的帧数 下面是三组代码及结果 (1)第一种情况: for i in range(frameNum): y=X[i,:] yf = np.abs(np.fft.rfft(y)) melM = librosa.feature.mfcc(y,fs,S=yf,n_mfcc=12) print(melM) 输出结果: [12.01187176 16.44704344 15.61216672 14.38118246 12.77777051 10.84203157 8.62860918 6.19697322 3.61622903 0.95595607 -1.70837193 -4.30547829] (2)第二种情况: for i in range(frameNum): y=X[i,:] yf = np.abs(np.fft.rfft(y)) yf=yf**2 melM = librosa.feature.mfcc(y,fs,S=yf,n_mfcc=12) print(melM) 输出结果: [ 570.37065963 795.19627788 761.25293536 705.78283689 630.39580985 537.27662246 429.12048164 309.05311082 180.53860667 47.27705996 -86.90415637 -218.16302183] 这两种情况,MFCC对应的图的形状是相同 (3)第三种情况: for i in range(frameNum): y=X[i,:] melM = librosa.feature.mfcc(y,fs,S=None,n_mfcc=12) print(melM) 结果: [[-278.17089678] [ 144.78769227] [ 56.44110736] [ 40.11968822] [ 25.1757355 ] [ 14.67492614] [ 5.77245624] [ -0.96605092] [ -7.23574856] [ -12.32471135] [ -17.40294169] [ -20.9566881 ]] (4)第四种情况: for i in range(frameNum): y=X[i,:] yf = np.abs(np.fft.rfft(y)) #频谱取模 yf = yf**2 #谱线能量 nfilt = 24 #Mel滤波器数量 low_freq_mel = 0 NFFT=256 high_freq_mel = (2595 * np.log10(1 + (fs / 2) / 700)) # 把 Hz 变成 Mel mel_points = np.linspace(low_freq_mel, high_freq_mel, nfilt + 2) # 将梅尔刻度等间隔 hz_points = (700 * (10**(mel_points / 2595) - 1)) # 把 Mel 变成 Hz bin = np.floor((NFFT + 1) * hz_points / fs) fbank = np.zeros((nfilt, int(np.floor(NFFT / 2 + 1)))) for m in range(1, nfilt + 1): f_m_minus = int(bin[m - 1]) # left f_m = int(bin[m]) # center f_m_plus = int(bin[m + 1]) # right for k in range(f_m_minus, f_m): fbank[m - 1, k] = (k - bin[m - 1]) / (bin[m] - bin[m - 1]) for k in range(f_m, f_m_plus): fbank[m - 1, k] = (bin[m + 1] - k) / (bin[m + 1] - bin[m]) filter_banks = np.dot(yf[0:129], fbank.T) filter_banks = np.where(filter_banks == 0, np.finfo(float).eps, filter_banks) # 数值稳定性 filter_banks = 10 * np.log10(filter_banks) # dB 此为分贝标准公式 filter_banks -= (np.mean(filter_banks, axis=0) + 1e-8) #DCT系数 num_ceps = 12 c2 = dct(filter_banks, type=2, axis=-1, norm='ortho')[ 1 : (num_ceps + 1)] # Keep 2-13 c2 *= lifts print(c2) 结果是: [ 152.16939829 103.18780826 53.15848861 -3.0957145 -67.3315891 -123.00839875 -157.48879067 -150.09115643 -104.25335171 -47.27345817 -6.68998885 1.39787529]

python:对一个波形做傅里叶变换,能得到整个频谱,怎么提取其中的频率分量呢?

import wave import struct import numpy as np if __name__ == '__main__': data_size = 40000 fname = "test.wav" frate = 11025.0 wav_file = wave.open(fname, 'r') data = wav_file.readframes(data_size) wav_file.close() data = struct.unpack('{n}h'.format(n=data_size), data) data = np.array(data) w = np.fft.fft(data) freqs = np.fft.fftfreq(len(w)) print(freqs.min(), freqs.max()) # (-0.5, 0.499975) # Find the peak in the coefficients idx = np.argmax(np.abs(w)) freq = freqs[idx] freq_in_hertz = abs(freq * frate) print(freq_in_hertz) # 439.8975 这个是对于单个data_size,frate已知的情况,真实情况是未知,且有多个频率的信号。求解。。。

神经网络cost值不下降的原因

训练一个梯度下降的二分类模型,当神经网络是[n,20,4,1]的cost值是下降收敛的, 但是[n,20,7,5,1]cost值初始为0.69下降到0.64就不会下降了,这是为什么呢? 贴一下代码: ``` import numpy as np import matplotlib.pyplot as plt import h5py #参数初始化,将所有w/b都封装在一个dict中 def initialize_parameters(layer_dims): parameters = {} L = len(layer_dims) for i in range(1,L): parameters['w'+ str(i)] = np.random.randn(layer_dims[i],layer_dims[i-1])*0.01 parameters['b'+ str(i)] = np.zeros((layer_dims[i],1)) assert(parameters['w'+ str(i)]).shape == (layer_dims[i],layer_dims[i-1]) assert(parameters['b'+ str(i)]).shape == (layer_dims[i],1) return parameters #定义激活函数 def relu(Z): A=(Z+abs(Z))/2 assert(A.shape == Z.shape) return A def sigmoid(Z): A=1.0/(1+np.exp(-Z)) assert(A.shape == Z.shape) return A #向前传播 def forward_propagation(X,parameters): #caches存储了每一层计算得到的A,Z值 caches = {} L=len(parameters)//2 A_prev=X for i in range(1,L): Z=np.dot(parameters['w'+str(i)],A_prev)+parameters['b'+str(i)] A=relu(Z) caches['Z'+str(i)]=Z caches['A'+str(i)]=A #这一层计算得到的A需要保留,下一层计算Z要用 A_prev=A #输出层的激活函数时sigmoid Z=np.dot(parameters['w'+str(L)],A_prev)+parameters['b'+str(L)] A=sigmoid(Z) caches['Z'+str(L)]=Z caches['A'+str(L)]=A #这里多存一个X是因为反向传播的时候要用到 caches['A0'] = X return A,caches #计算代价 def cpmpute_cost(A,Y): m=Y.shape[1] cost=-1/m*np.sum(np.multiply(np.log(A),Y)+np.multiply((1-Y),np.log(1-A))) cost=np.squeeze(cost) return cost #relu函数的导数 def relu_back(Z,dA): deri = Z deri[Z < 0]=0 deri[Z >=0]=1 return deri #反向传播 def back_propagation(Y,caches,parameters): #所有的dw和db grads={} L=len(caches)//2 m=Y.shape[1] #AL其实就是一次迭代得到的预测值 AL=caches['A'+str(L)] #因为sigmoid反向传和relu不同,所以单独处理 dZ=AL-Y dW=np.dot(dZ,caches['A'+str(L-1)].T)/m db=np.sum(dZ,axis=1,keepdims=True)/m grads['dw'+str(L)]=dW grads['db'+str(L)]=db for i in reversed(range(1,L)): dA=np.dot(parameters['w'+str(i+1)].T,dZ) dZ=np.multiply(dA,relu_back(caches['Z'+str(i)],dA)) dW=1.0/m * np.dot(dZ,caches['A'+str(i-1)].T) db=1.0/m * np.sum(dZ,axis=1,keepdims=True) grads['dw'+str(i)]=dW grads['db'+str(i)]=db return grads #更新参数 def update_parameters(parameters, grads, alphs): L = len(parameters)//2 for l in range(L): parameters['w'+str(l+1)] = parameters['w'+str(l+1)] - alphs * grads['dw'+str(l+1)] parameters['b'+str(l+1)] = parameters['b'+str(l+1)] - alphs * grads['db'+str(l+1)] return parameters #模型预测 def predict(X,parameters): A2,caches=forward_propagation(X,parameters) temp=A2.shape[1] Y_pred=np.zeros([1,temp]) for i in range(temp): if A2[:,i]>0.5: Y_pred[:,i]=1 else: Y_pred[:,i]=0 return Y_pred #模型整合 def model(X,Y,layer_dims,iter_times,alphs,print_flag): np.random.seed(1) parameters=initialize_parameters(layer_dims) for i in range(0,iter_times): A,caches=forward_propagation(X,parameters) cost=cpmpute_cost(A,Y) grads=back_propagation(Y,caches,parameters) parameters=update_parameters(parameters,grads,alphs) if print_flag and i % 100 == 0: print('iteration at ',i,' cost :',cost) return parameters n=train_data_finalX.shape[0] layer_dims=[n,20,7,5,1] parameters=model(train_data_finalX,train_data_finalY,layer_dims,2500,0.0075,True) y_pred_train=predict(train_data_finalX,parameters) print('train acc is ',np.mean(y_pred_train == train_data_finalY)*100,'%') y_pred_test=predict(test_data_finalX,parameters) print('test acc is ',np.mean(y_pred_test == test_data_finalY)*100,'%') ``` 结果类似这样,后面cost值变化很小,在小数点后5位 我试过增加迭代次数和增大学习因子,还是有这个问题 iteration at 0 cost : 0.6932015486338629 iteration at 100 cost : 0.6482987506672847 iteration at 200 cost : 0.6443527436694975 iteration at 300 cost : 0.6439059082659386 iteration at 400 cost : 0.6436651460852033 iteration at 500 cost : 0.6431109804509275

求问一个python问题,Out[2]: array([1.86510471, 0.15511197])这一行一直在报错,求解答

``` import numpy as np from scipy import optimize from scipy import stats r=0.0225;sigma_e=0.2893;t=1;E=141276427;DP=1.25e8 def g(w): x,sigma_a=w N_d1=stats.norm.cdf((np.log(abs(x)*E/DP)+(r+0.5*sigma_a**2)*t)/(sigma_a*np.sqrt(t))) N_d2=stats.norm.cdf((np.log(abs(x)*E/DP)+(r-0.5*sigma_a**2)*t)/(sigma_a*np.sqrt(t))) #为了防止fsolve迭代到负数报错,给x加绝对值 e1=E-(x*E*N_d1-DP*N_d2*np.exp(-r*t)) e2=sigma_e-sigma_a*N_d1*x return [e1,e2]#此处返回等于0的式子 result=optimize.fsolve(g,[1,0.1]) result **Out[2]: array([1.86510471, 0.15511197])**#这一行一直在报错 x,sigma_a=result DD=(x*E-DP)/(x*E*sigma_a)#违约距离 EDF=stats.norm.cdf(-DD) print('企业资产为{:.2f},资产的波动率为{:.4%}'.format(x*E,sigma_a)) print('违约距离为DD={:.4f},违约概率EDF={:.4%}'.format(DD,EDF)) 企业资产为263495329.74,资产的波动率为15.5112% 违约距离为DD=3.3886,违约概率EDF=0.0351% ``` **Out[2]: array([1.86510471, 0.15511197])** 我在这一行一直在报错,求问各位大佬这是怎么回事,是python2和3的差别吗。xie'xie'ge'wei'da'lao

x_choose = x.iloc[a, b]为函数中的一步(选取矩阵),应该如何为a,b赋.例如想要的结果x.iloc[0:5,0:2]或者x.iloc[:,1,3:5,8],a=0:5,b=0:2试过了,不行,该怎么办?

``` def train_pca(x, a,b,x1=0.90, alpha1=0.90, alpha2=0.90): x_choose = x.iloc[a,b] ``` 调用的时候怎么给a,b赋值? 就是实现x数据集的样本和特征选取。 ``` train_pca(X_train, 0: 50, 5: 20) ``` ![图片说明](https://img-ask.csdn.net/upload/202006/17/1592368420_785372.png) ![图片说明](https://img-ask.csdn.net/upload/202006/17/1592368432_460155.png)

求模拟退火优化BPNN的Python代码

本人很小白,SA和BPNN的原理都比较清楚,但是搜了一下发现没有用SA优化BPNN的Python代码,毕业论文急用 附上我的BPNN和SA分别的代码 BPNN: ``` # -*- coding: utf-8 -*- from __future__ import print_function import theano import theano.tensor as T from theano.ifelse import ifelse import numpy as np import pandas as pd import os from sklearn.metrics import mean_squared_error, r2_score,mean_absolute_error import warnings warnings.filterwarnings('ignore') import time start=time.clock() #定义神经网络模型:反向传播神经网络;输入层/隐藏层/输出层; class Layer(object): def __init__(self, inputs, in_size, out_size, activation_function=None): self.W = theano.shared(np.random.normal(0, 1, (in_size, out_size))) self.b = theano.shared(np.zeros((out_size, )) + 0.1) self.Wx_plus_b = T.dot(inputs, self.W) + self.b self.activation_function = activation_function if activation_function is None: self.outputs = self.Wx_plus_b else: self.outputs = self.activation_function(self.Wx_plus_b) # import data os.chdir(r'C:\Users\Songuoer\Desktop\不知道\订单数据') df = pd.read_excel('净味防霉随机测试数据2018.xlsx',sheet_name='data') df['lnq'] = np.log(df['q']) df['q_1'] = df['q'].shift(1) df['lnq_1'] = df['lnq'].shift(1) df.dropna(inplace=True) # 数据标准化 def max_min(data): data0 = [(x - min(data))/(max(data) - min(data)) for x in data] return data0 # 标准化后的data data = df[['ym']] data['p'] = max_min(df['p']) data['discount'] = max_min(df['discount']) data['season'] = max_min(df['season']) data['q'] = max_min(df['q']) data['q_1'] = max_min(df['q_1']) #定义输入和输出矩阵: feature_cols = ['q_1','p','discount','season'] # 测试集 x_test = np.array(data[feature_cols][:40]) y_test = np.array(data['q'])[:40][:, np.newaxis] # 训练集 x_pre = np.array(data[feature_cols][40:]) y_pre = np.array(data['q'])[40:][:, np.newaxis] # 实际销量 q_test = np.array(df['q'][40:],dtype=float) #定义神经网络内的bias调整偏差值 noise = np.random.normal(0, 0.35, x_test.shape) # determine the inputs dtype x = T.dmatrix("x") y = T.dmatrix("y") #定义神经网络的隐藏层和输出层: # add layers hidden = 8 l1 = Layer(x, 4, hidden, T.nnet.sigmoid) l2 = Layer(l1.outputs,hidden, 1, None) # compute the cost cost = T.mean(T.square(l2.outputs - y)) ''' #这里说明一下希望把cost函数改成这种形式 def cost(l2outputs,y): y_gap = l2outputs-y yh = y_gap[y_gap>0]*2 yw = -y_gap[y_gap<0]*10 tc = T.sum(yh)+T.sum(yw) return tc ''' # compute the gradients gW1, gb1, gW2, gb2 = T.grad(cost, [l1.W, l1.b, l2.W, l2.b]) # apply gradient descent learning_rate = 0.001 train = theano.function( inputs=[x, y], outputs=cost, updates=[(l1.W, l1.W - learning_rate * gW1), (l1.b, l1.b - learning_rate * gb1), (l2.W, l2.W - learning_rate * gW2), (l2.b, l2.b - learning_rate * gb2)]) # prediction predict = theano.function(inputs=[x], outputs=l2.outputs) # BPNN的参数 paramters = theano.function(inputs=[x], outputs=[l1.W, l1.b, l2.W, l2.b] ,on_unused_input='ignore') # 迭代预测 total_times = 30000 for i in range(total_times): # training err = train(x_test, y_test) if i % 6000 == 0: print('%i times error:'%i,err) prediction_value = predict(x_pre) par = paramters(x_pre) # 将预测值还原 def nor_q(q): minq,maxq = min(df['q']),max(df['q']) q_o = [((maxq-minq)*x+minq) for x in q] return q_o q_pre = np.array(nor_q(prediction_value)).reshape(7,) final_par_z = par # 定义MAPE def mape(y_true, y_pred): return np.mean(np.abs((y_pred - y_true) / y_true)) * 100 print('Variance score: %.3f' % r2_score(q_test, q_pre)) print("RMSE: %.2f" % np.sqrt(mean_squared_error(q_test, q_pre))) print('MAE: %.3f'%mean_absolute_error(q_test,q_pre)) print('MAPE: %.3f'%mape(q_test, q_pre)) result = pd.DataFrame({'实际销量':q_test,'预测销量':q_pre}, index=pd.period_range('6/1/2018','12/1/2018',freq = 'M')) end=time.clock() print('Running time: %s Seconds'%(end-start)) print('finished!') ``` SA: ``` import numpy as np import pandas as pd import math import os import warnings warnings.filterwarnings('ignore') # 不发出警告 import time start=time.clock() os.chdir(r'C:\Users\Songuoer\Desktop\不知道\订单数据') df = pd.read_excel('真时丽随机测试数据2018.xlsx',sheet_name='data') data = df[40:] data['lnq'] = np.log(data['q']) data['lnq_1'] = data['lnq'].shift() h = 2 w = 12 beta1 = [-12.5639,0.2933,0.184,-0.0476,0.8487] #真时丽 beta2 = [7.8332,0.2464,0.0584,-0.1038,0.0178] #家净丽 beta3 = [20.604908,0.010558,-0.165661,0.016112] #净味防霉,没有lnq_1 beta = beta1 #define aim function def aimFunction(beta): data['lnq_pre'] = beta[0]+beta[1]*data['lnq_1']+beta[2]*data['p']+beta[3]*data['discount']+beta[4]*data['season'] # data['lnq_pre'] = beta[0]+beta[1]*data['p']+beta[2]*data['discount']+beta[3]*data['season'] data['lnq_pre'][40] = data['lnq'][40] data['OUL'] = np.exp(data['lnq_pre']).astype(np.int) data['inventory'] = data['OUL']-data['q'] data['short'] = data['q']-data['OUL'] data['inventory'][data['inventory']<0] = 0 data['short'][data['short']<0] = 0 data['C_inventory'] = h*data['inventory'] data['C_short'] = w*data['short'] data['Cost'] = data['C_inventory']+data['C_short'] TC = data['Cost'].iloc[1:].sum() return TC TC0 = aimFunction(beta)#initiate result print('initiate result:%i'%TC0) #模拟退火算法 T=1500 #initiate temperature Tmin=10 #minimum value of terperature betaNew = [0,0,0,0,0] k=200 #times of internal circulation t=0 #time a = 0.2 while T>=Tmin: for i in range(k): #calculate y TC=aimFunction(beta) #generate a new x in the neighboorhood of x by transform function for i in range(5): if beta[i]>0: betaNew[i] = np.random.uniform(low=(1-a)*beta[i],high=(1+a)*beta[i]) else: betaNew[i] = np.random.uniform(low=(1+a)*beta[i],high=(1-a)*beta[i]) TCNew=aimFunction(betaNew) if TCNew-TC<0: beta=betaNew.copy() else: #metropolis principle p=math.exp(-(TCNew-TC)/T) r=np.random.uniform(low=0,high=1) if r<p: beta=betaNew.copy() t+=1 if t%20 == 0: print ('Intervel: %i,Total Cost:%i'%(t,aimFunction(beta))) T=1000/(1+t) print (beta,aimFunction(beta)) end=time.clock() print('Running time: %s Seconds'%(end-start)) ``` 希望能用模拟退火算法来优化BPNN的参数从而求最小总成本 谢谢各位

python代码修改指导意见

现有python的PFCM算法的代码,已经能对示例图进行分割,示例图及其分割结果已附上,请教一下如何对代码进行修改,从而能对附上的大脑mri进行灰质白质脑脊液分割,谢谢![图片说明](https://img-ask.csdn.net/upload/202002/27/1582798975_215783.jpg)![图片说明](https://img-ask.csdn.net/upload/202002/27/1582798986_544359.jpg)![图片说明](https://img-ask.csdn.net/upload/202002/27/1582799023_306067.png)代包也已经附上,望大佬能给点指点,万分感谢 import numpy as np def pfcm(data, c, expo=2, max_iter=1000, min_impro=0.005, a=1, b=4, nc=3): """ <h3>Possiblistic Fuzzy C-Means Clustering Algorithm</h3> <b>Parameters :</b><ul> <li><u>data</u>: Dataset to be clustered, with size M-by-N, where M is the number of data points and N is the number of coordinates for each data point.</li> <li><u>c</u> : Number of clusters</li> <li><u>expo</u> : exponent for the U matrix (default = 2)</li> <li><u>max_iter</u> : Maximum number of iterations (default = 1000)</li> <li><u>min_impor</u> : Minimum amount of imporvement (default = 0.005)</li> <li><u>a</u> : User-defined constant a (default = 1)</li> <li><u>b</u> : User-defined constant b that should be greater than a (default = 4)</li> <li><u>nc</u> : User-defined constant nc (default = 2)</li> </ul> The clustering process stops when the maximum number of iterations is reached, or when objective function improvement or the maximum centers imporvement between two consecutive iterations is less than the minimum amount specified.<br><br> <b>Return values :</b><ul> <li><u>cntr</u> : The clusters centers</li> <li><u>U</u> : The C-Partionned Matrix (used in FCM)</li> <li><u>T</u> : The Typicality Matrix (used in PCM)</li> <li><u>obj_fcn</u> : The objective function for U and T</li> </ul> """ obj_fcn = np.zeros(shape=(max_iter, 1)) ni = np.zeros(shape=(c, data.shape[0])) U = initf(c, data.shape[0]) T = initf(c, data.shape[0]) cntr = np.random.uniform(low=np.min(data), high=np.max(data), size=( c, data.shape[1])) for i in range(max_iter): current_cntr = cntr U, T, cntr, obj_fcn[i], ni = pstepfcm( data, cntr, U, T, expo, a, b, nc, ni) if i > 1: if abs(obj_fcn[i] - obj_fcn[i-1]) < min_impro: break elif np.max(abs(cntr - current_cntr)) < min_impro: break return cntr, U, T, obj_fcn def pstepfcm(data, cntr, U, T, expo, a, b, nc, ni): mf = np.power(U, expo) tf = np.power(T, nc) tfo = np.power((1-T), nc) cntr = (np.dot(a*mf+b*tf, data).T/np.sum( a*mf+b*tf, axis=1).T).T dist = pdistfcm(cntr, data) obj_fcn = np.sum(np.sum(np.power(dist, 2)*(a*mf+b*tf), axis=0)) + np.sum( ni*np.sum(tfo, axis=0)) ni = mf*np.power(dist, 2)/(np.sum(mf, axis=0)) tmp = np.power(dist, (-2/(nc-1))) U = tmp/(np.sum(tmp, axis=0)) tmpt = np.power((b/ni)*np.power(dist, 2), (1/(nc-1))) T = 1/(1+tmpt) return U, T, cntr, obj_fcn, ni def initf(c, data_n): A = np.random.random(size=(c, data_n)) col_sum = np.sum(A, axis=0) return A/col_sum def pdistfcm(cntr, data): out = np.zeros(shape=(cntr.shape[0], data.shape[0])) for k in range(cntr.shape[0]): out[k] = np.sqrt(np.sum((np.power(data-cntr[k], 2)).T, axis=0)) return out def pfcm_predict(data, cntr, expo=2, a=1, b=4, nc=3): """ <h3>Possiblistic Fuzzy C-Means Clustering Prediction Algorithm</h3> <b>Parameters :</b><ul> <li><u>data</u>: Dataset to be clustered, with size M-by-N, where M is the number of data points and N is the number of coordinates for each data point.</li> <li><u>cntr</u> : centers of the dataset previoulsy calculated</li> <li><u>expo</u> : exponent for the U matrix (default = 2)</li> <li><u>a</u> : User-defined constant a (default = 1)</li> <li><u>b</u> : User-defined constant b that should be greater than a (default = 4)</li> <li><u>nc</u> : User-defined constant nc (default = 2)</li> </ul> The algortihm predicts which clusters the new dataset belongs to<br><br> <b>Return values :</b><ul> <li><u>new_cntr</u> : The new clusters centers</li> <li><u>U</u> : The C-Partionned Matrix (used in FCM)</li> <li><u>T</u> : The Typicality Matrix (used in PCM)</li> <li><u>obj_fcn</u> : The objective function for U and T</li> </ul> """ dist = pdistfcm(cntr, data) tmp = np.power(dist, (-2/(nc-1))) U = tmp/(np.sum(tmp, axis=0)) mf = np.power(U, expo) ni = mf*np.power(dist, 2)/(np.sum(mf, axis=0)) tmpt = np.power((b/ni)*np.power(dist, 2), (1/(nc-1))) T = 1/(1+tmpt) tf = np.power(T, nc) tfo = np.power((1-T), nc) new_cntr = (np.dot(a*mf+b*tf, data).T/np.sum( a*mf+b*tf, axis=1).T).T obj_fcn = np.sum(np.sum(np.power(dist, 2)*(a*mf+b*tf), axis=0)) + np.sum( ni*np.sum(tfo, axis=0)) return new_cntr, U, T, obj_fcn ``` import numpy as np import matplotlib.image as mpimg from PFCM import pfcm import time def creat_image(labels, centers): """ color each pixel with the cluster's center color that it belongs to """ img = np.zeros(shape=(labels.shape[0], labels.shape[1], 3)) for i in range(img.shape[0]): for j in range(img.shape[1]): img[i, j] = centers[labels[i, j]] if(img.max() > 1): img /= 255 mpimg.imsave('Image Result_3.bmp', img) # image result return img clusters = 3 # define the number of clusters img = mpimg.imread('78.bmp') # read the test image start_time = time.clock() # start calculating the execution time centers, U, T, obj_fcn = pfcm( img.reshape(img.shape[0]*img.shape[1], img.shape[2]), clusters) # calling the pfcm function on the image after reshaping it elapsed_time = time.clock() - start_time # end calculating the execution time labels = np.argmax(U, axis=0).reshape(img.shape[0], img.shape[1]) # assing each pixel to its closest cluster creat_image(labels, centers) # creat an image with the assigned clusters print(f'elapsed time : {round(elapsed_time, 3)} seconds') # printing the execution time ```

theano 运行报错 安装了MingGW依然不行

想用theano运行regularization 安装了MingGW c++complier依然报错 ``` from sklearn.datasets import load_boston import theano.tensor as T import numpy as np import matplotlib.pyplot as plt import theano class Layer(object): def __init__(self,inputs,in_size,out_size,activation_function=None): self.W = theano.shared(np.random.normal(0,1,(in_size,out_size))) self.b = theano.shared(np.zeros((out_size,)) + 0.1) self.Wx_plus_b = T.dot(inputs, self.W) + self.b self.activation_function = activation_function if activation_function is None: self.outputs = self.Wx_plus_b else: self.outputs = self.activation_function(self.Wx_plus_b) def minmax_normalization(data): xs_max = np.max(data, axis=0) xs_min = np.min(data, axis=0) xs = (1-0)*(data - xs_min)/(xs_max - xs_min) + 0 return xs np.random.seed(100) x_dataset = load_boston() x_data = x_dataset.data # minmax normalization, rescale the inputs x_data = minmax_normalization(x_data) y_data = x_dataset.target[:,np.newaxis] #cross validation, train test data split x_train, y_train = x_data[:400], y_data[:400] x_test, y_test = x_data[400:], y_data[400:] x = T.dmatrix('x') y = T.dmatrix('y') l1 = Layer(x, 13, 50, T.tanh) l2 = Layer(l1.outputs, 50, 1, None) #compute cost cost = T.mean(T.square(l2.outputs - y)) #cost = T.mean(T.square(l2.outputs - y)) + 0.1*((l1.W**2).sum() + (l2.W**2).sum()) #l2 regulization #cost = T.mean(T.square(l2.outputs - y)) + 0.1*(abs(l1.W).sum() + abs(l2.W).sum()) #l1 regulization gW1, gb1, gW2, gb2 = T.grad(cost, [l1.W,l1.b,l2.W,l2.b]) #gradient descend learning_rate = 0.01 train = theano.function(inputs=[x,y], updates=[(l1.W,l1.W-learning_rate*gW1), (l1.b,l1.b-learning_rate*gb1), (l2.W,l2.W-learning_rate*gW2), (l2.b,l2.b-learning_rate*gb2)]) compute_cost = theano.function(inputs=[x,y], outputs=cost) #record cost train_err_list = [] test_err_list = [] learning_time = [] for i in range(1000): if 1%10 == 0: #record cost train_err_list.append(compute_cost(x_train,y_train)) test_err_list.append(compute_cost(x_test,y_test)) learning_time.append(i) #plot cost history plt.plot(learning_time, train_err_list, 'r-') plt.plot(learning_time, test_err_list,'b--') plt.show() #作者:morvan 莫凡 https://morvanzhou.github.io ``` 报错如下: You can find the C code in this temporary file: C:\Users\Elena\AppData\Local\Temp\theano_compilation_error_cns9ecbh Traceback (most recent call last): File "c:\Users\Elena\PycharmProjects\theano\regularization.py", line 2, in <module> import theano.tensor as T File "C:\Users\Elena\Anaconda3\lib\site-packages\theano\__init__.py", line 110, in <module> from theano.compile import ( File "C:\Users\Elena\Anaconda3\lib\site-packages\theano\compile\__init__.py", line 12, in <module> from theano.compile.mode import * File "C:\Users\Elena\Anaconda3\lib\site-packages\theano\compile\mode.py", line 11, in <module> import theano.gof.vm File "C:\Users\Elena\Anaconda3\lib\site-packages\theano\gof\vm.py", line 674, in <module> from . import lazylinker_c File "C:\Users\Elena\Anaconda3\lib\site-packages\theano\gof\lazylinker_c.py", line 140, in <module> preargs=args) File "C:\Users\Elena\Anaconda3\lib\site-packages\theano\gof\cmodule.py", line 2396, in compile_str (status, compile_stderr.replace('\n', '. '))) Exception: Compilation failed (return status=1): C:\Users\Elena\AppData\Local\Theano\compiledir_Windows-10-10.0.17134-SP0-Intel64_Family_6_Model_142_Stepping_9_GenuineIntel-3.6.5-64\lazylinker_ext\mod.cpp:1:0: sorry, unimplemented: 64-bit mode not compiled in . #include <Python.h> 终端显示gcc有安装 ![图片说明](https://img-ask.csdn.net/upload/201909/29/1569745503_383115.png)

基于Python二维离散余弦变换(DCT)及其反变换(IDCT)

DCT转换后IDCT出现的不是原图是一张全白图片 ``` import cv2 import numpy as np import matplotlib.pyplot as plt try: img = cv2.imread(r'C:\Users\www09\Desktop\so\original.png', cv2.IMREAD_COLOR) if img is None: raise FileNotFoundError('ファイルが見つかりません') img = cv2.imread(r'C:\Users\www09\Desktop\so\original.png', cv2.IMREAD_GRAYSCALE) cv2.imshow('sample', img) img = img.astype('float') img = np.float32(img) img_dct = cv2.dct(img) cv2.imshow('sample01', img_dct) img_dct_log = np.log(abs(img_dct)) img_recor2 = cv2.idct(img_dct) cv2.imshow('sample02', img_recor2) cv2.waitKey(0) cv2.destroyAllwindows() except FileNotFoundError as e: print(e) ``` ![图片说明](https://img-ask.csdn.net/upload/202006/01/1590996398_565614.png) ![图片说明](https://img-ask.csdn.net/upload/202006/01/1590996422_974249.png) ![图片说明](https://img-ask.csdn.net/upload/202006/01/1590996447_295062.png)

python3.7中的tensorflow2.0模块没有的问题。

小白刚做手写字识别,遇到tensorflow导入模块的一些问题,模块ModuleNotFoundError: No module named 'tensorflow.examples.tutorials'不会解决。 import keras # 导入Keras import numpy as np from keras.datasets import mnist # 从keras中导入mnist数据集 from keras.models import Sequential # 导入序贯模型 from keras.layers import Dense # 导入全连接层 from keras.optimizers import SGD # 导入优化函数 from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("MNIST_data", one_hot = True) ![图片说明](https://img-ask.csdn.net/upload/201911/17/1573957701_315782.png) 在网上找了好久,也不怎么懂,能告诉我详实点的解决办法。

为什么运行一半不执行了?

import numpy as np #Numpy是科学计算库,是一个强大的N维数组对象ndarray import copy import cv2 #Python 中赋值语句不复制对象,而是在目标和对象之间创建绑定 (bindings) 关系。对于自身可变或者包含可变项的集合对象,开发者有时会需要生成其副本用于改变操作,进而避免改变原对象。 #copy模块提供了通用的浅层复制和深层复制操作。 def reshape_image(image): '''归一化图片尺寸:短边400,长边不超过800,短边400,长边超过800以长边800为主''' width,height=image.shape[1],image.shape[0]#image.shape显示图片尺寸,1宽度、0高度 min_len=width scale=width*1.0/400 new_width=400 new_height=int(height/scale) if new_height>800: new_height=800 scale=height*1.0/800 new_width=int(width/scale) out=cv2.resize(image,(new_width,new_height)) #cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) 改变图像的大小(高、宽、按比例调整大小) #src(原图像)、dsize(输出图像所需大小)这个包括可选项为:fx(沿水平轴的比例因子)、fy(沿垂直轴的比例因子); #interpolation(插值方式:cv.INTER_NEAREST-最近领插值、cv.INTER_LINEAR-双线性插值、cv.INTER_CUBIC-双线性插值、cv.INTER_AREA-cv.INTER_AREA) return out def detecte(image): '''提取所有轮廓''' gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#转换为灰度图 _,gray=cv2.threshold(gray,0,255,cv2.THRESH_OTSU+cv2.THRESH_BINARY_INV)#图像阈值处理 contours,hierachy=cv2.findContours(gray,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)#寻找轮廓(寻找轮廓的图像、轮廓的检索方式、轮廓的近似办法) #返回的三个参数(处理图像、轮廓的点集、各层轮廓的索引) return contours,hierachy def compute_1(contours,i,j): '''最外面的轮廓和子轮廓的比例''' area1 = cv2.contourArea(contours[i])#求某一个轮廓的面积 area2 = cv2.contourArea(contours[j]) if area2==0: return False ratio = area1 * 1.0 / area2 if abs(ratio - 49.0 / 25):#返回数字的绝对值。 return True return False def compute_2(contours,i,j): '''子轮廓和子子轮廓的比例''' area1 = cv2.contourArea(contours[i]) area2 = cv2.contourArea(contours[j]) if area2==0: return False ratio = area1 * 1.0 / area2 if abs(ratio - 25.0 / 9): return True return False def compute_center(contours,i): '''计算轮廓中心点''' M=cv2.moments(contours[i])#会得到一个矩以一个字典的形式返回 cx = int(M['m10'] / M['m00'])#重心计算公式 cy = int(M['m01'] / M['m00']) return cx,cy def detect_contours(vec): '''判断这个轮廓和它的子轮廓以及子子轮廓的中心的间距是否足够小''' distance_1=np.sqrt((vec[0]-vec[2])**2+(vec[1]-vec[3])**2)#平方根计算 distance_2=np.sqrt((vec[0]-vec[4])**2+(vec[1]-vec[5])**2) distance_3=np.sqrt((vec[2]-vec[4])**2+(vec[3]-vec[5])**2) if sum((distance_1,distance_2,distance_3))/3<3: return True return False def juge_angle(rec): '''判断寻找是否有三个点可以围成等腰直角三角形''' if len(rec)<3:#返回字符串、列表、字典、元组等长度 return -1,-1,-1 for i in range(len(rec)):#可创建一个整数列表;range(start, stop[, step]):start: 计数从 start 开始、stop: 计数到 stop 结束,但不包括 stop、step:步长,默认为1。 for j in range(i+1,len(rec)): for k in range(j+1,len(rec)): distance_1 = np.sqrt((rec[i][0] - rec[j][0]) ** 2 + (rec[i][1] - rec[j][1]) ** 2) distance_2 = np.sqrt((rec[i][0] - rec[k][0]) ** 2 + (rec[i][1] - rec[k][1]) ** 2) distance_3 = np.sqrt((rec[j][0] - rec[k][0]) ** 2 + (rec[j][1] - rec[k][1]) ** 2) if abs(distance_1-distance_2)<5: if abs(np.sqrt(np.square(distance_1)+np.square(distance_2))-distance_3)<5: return i,j,k elif abs(distance_1-distance_3)<5: if abs(np.sqrt(np.square(distance_1)+np.square(distance_3))-distance_2)<5: return i,j,k elif abs(distance_2-distance_3)<5: if abs(np.sqrt(np.square(distance_2)+np.square(distance_3))-distance_1)<5: return i,j,k return -1,-1,-1 def find(image,contours,hierachy,root=0): '''找到符合要求的轮廓''' rec=[] for i in range(len(hierachy)): child = hierachy[i][2] child_child=hierachy[child][2] if child!=-1 and hierachy[child][2]!=-1: if compute_1(contours, i, child) and compute_2(contours,child,child_child): cx1,cy1=compute_center(contours,i) cx2,cy2=compute_center(contours,child) cx3,cy3=compute_center(contours,child_child) if detect_contours([cx1,cy1,cx2,cy2,cx3,cy3]): rec.append([cx1,cy1,cx2,cy2,cx3,cy3,i,child,child_child]) '''计算得到所有在比例上符合要求的轮廓中心点''' i,j,k=juge_angle(rec) if i==-1 or j== -1 or k==-1: return ts = np.concatenate((contours[rec[i][6]], contours[rec[j][6]], contours[rec[k][6]])) rect = cv2.minAreaRect(ts) box = cv2.boxPoints(rect) box = np.int0(box) result=copy.deepcopy(image) cv2.drawContours(result, [box], 0, (0, 0, 255), 2) cv2.drawContours(image,contours,rec[i][6],(255,0,0),2) cv2.drawContours(image,contours,rec[j][6],(255,0,0),2) cv2.drawContours(image,contours,rec[k][6],(255,0,0),2) cv2.imshow('img',image) cv2.waitKey(0) cv2.imshow('img',result) cv2.waitKey(0) return if __name__ == '__main__': image=cv2.imread('1.png') image=reshape_image(image) cv2.imshow('start', image) cv2.waitKey(0) #运行后只执行到这行之前,之后就不执行了,有知道怎么解决的能帮我下吗? contours,hierachy=detecte(image) find(image,contours,np.squeeze(hierachy))

theano 报错 module 'configparser' has no attribute 'ConfigParser' 用的是Anaconda3 python3.6

>theano 报错 module 'configparser' has no attribute 'ConfigParser' 用的是Win10 Anaconda3 python3.6 ``` from sklearn.datasets import load_boston import theano.tensor as T import numpy as np import matplotlib.pyplot as plt import theano class Layer(object): def __init__(self,inputs,in_size,out_size,activation_function=None): self.W = theano.shared(np.random.normal(0,1,(in_size,out_size))) self.b = theano.shared(np.zeros((out_size,)) + 0.1) self.Wx_plus_b = T.dot(inputs, self.W) + self.b self.activation_function = activation_function if activation_function is None: self.outputs = self.Wx_plus_b else: self.outputs = self.activation_function(self.Wx_plus_b) def minmax_normalization(data): xs_max = np.max(data, axis=0) xs_min = np.min(data, axis=0) xs = (1-0)*(data - xs_min)/(xs_max - xs_min) + 0 return xs np.random.seed(100) x_dataset = load_boston() x_data = x_dataset.data # minmax normalization, rescale the inputs x_data = minmax_normalization(x_data) y_data = x_dataset.target[:,np.newaxis] #cross validation, train test data split x_train, y_train = x_data[:400], y_data[:400] x_test, y_test = x_data[400:], y_data[400:] x = T.dmatrix('x') y = T.dmatrix('y') l1 = Layer(x, 13, 50, T.tanh) l2 = Layer(l1.outputs, 50, 1, None) #compute cost cost = T.mean(T.square(l2.outputs - y)) #cost = T.mean(T.square(l2.outputs - y)) + 0.1*((l1.W**2).sum() + (l2.W**2).sum()) #l2 regulization #cost = T.mean(T.square(l2.outputs - y)) + 0.1*(abs(l1.W).sum() + abs(l2.W).sum()) #l1 regulization gW1, gb1, gW2, gb2 = T.grad(cost, [l1.W,l1.b,l2.W,l2.b]) #gradient descend learning_rate = 0.01 train = theano.function(inputs=[x,y], updates=[(l1.W,l1.W-learning_rate*gW1), (l1.b,l1.b-learning_rate*gb1), (l2.W,l2.W-learning_rate*gW2), (l2.b,l2.b-learning_rate*gb2)]) compute_cost = theano.function(inputs=[x,y], outputs=cost) #record cost train_err_list = [] test_err_list = [] learning_time = [] for i in range(1000): if 1%10 == 0: #record cost train_err_list.append(compute_cost(x_train,y_train)) test_err_list.append(compute_cost(x_test,y_test)) learning_time.append(i) #plot cost history plt.plot(learning_time, train_err_list, 'r-') plt.plot(learning_time, test_err_list,'b--') plt.show() #作者 morvan莫凡 https://morvanzhou.github.io ``` 报错了: Traceback (most recent call last): File "C:/Users/Elena/PycharmProjects/theano/regularization.py", line 1, in <module> from sklearn.datasets import load_boston File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\datasets\__init__.py", line 22, in <module> from .twenty_newsgroups import fetch_20newsgroups File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\datasets\twenty_newsgroups.py", line 44, in <module> from ..feature_extraction.text import CountVectorizer File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\feature_extraction\__init__.py", line 10, in <module> from . import text File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 28, in <module> from ..preprocessing import normalize File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\preprocessing\__init__.py", line 6, in <module> from ._function_transformer import FunctionTransformer File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\preprocessing\_function_transformer.py", line 5, in <module> from ..utils.testing import assert_allclose_dense_sparse File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\utils\testing.py", line 61, in <module> from nose.tools import raises as _nose_raises File "C:\Users\Elena\Anaconda3\lib\site-packages\nose\__init__.py", line 1, in <module> from nose.core import collector, main, run, run_exit, runmodule File "C:\Users\Elena\Anaconda3\lib\site-packages\nose\core.py", line 11, in <module> from nose.config import Config, all_config_files File "C:\Users\Elena\Anaconda3\lib\site-packages\nose\config.py", line 6, in <module> import configparser File "C:\Users\Elena\Anaconda3\Lib\site-packages\theano\configparser.py", line 15, in <module> import theano File "C:\Users\Elena\Anaconda3\lib\site-packages\theano\__init__.py", line 88, in <module> from theano.configdefaults import config File "C:\Users\Elena\Anaconda3\lib\site-packages\theano\configdefaults.py", line 17, in <module> from theano.configparser import (AddConfigVar, BoolParam, ConfigParam, EnumStr, File "C:\Users\Elena\Anaconda3\lib\site-packages\theano\configparser.py", line 77, in <module> theano_cfg = (configparser.ConfigParser if PY3 **AttributeError: module 'configparser' has no attribute 'ConfigParser**' 把theano里的configparser.py文件里的ConfigParser改成了configparser还是不行 换了模块import configparsor也不行。。。![图片说明](https://img-ask.csdn.net/upload/201909/30/1569832318_223436.png)

python中现在是对实时图像选择目标,怎么修改代码能实现对已有视频按下空格可以选择目标,然后继续识别目标

import cv2 import numpy as np xs,ys,ws,hs = 0,0,0,0 #selection.x selection.y xo,yo=0,0 #origin.x origin.y selectObject = False trackObject = 0 def onMouse(event, x, y, flags, prams): global xs,ys,ws,hs,selectObject,xo,yo,trackObject if selectObject == True: xs = min(x, xo) ys = min(y, yo) ws = abs(x-xo) hs = abs(y-yo) if event == cv2.EVENT_LBUTTONDOWN: xo,yo = x, y xs,ys,ws,hs= x, y, 0, 0 selectObject = True elif event == cv2.EVENT_LBUTTONUP: selectObject = False trackObject = -1 videoFilePath = '1.avi' #cap = cv2.VideoCapture(videoFilePath) cap = cv2.VideoCapture(0) ret,frame = cap.read() cv2.namedWindow('imshow') cv2.setMouseCallback('imshow',onMouse) term_crit = ( cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 1 ) while(True): ret,frame = cap.read() if trackObject != 0: hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) mask = cv2.inRange(hsv, np.array((0., 30.,10.)), np.array((180.,256.,255.))) if trackObject == -1: track_window=(xs,ys,ws,hs) maskroi = mask[ys:ys+hs, xs:xs+ws] hsv_roi = hsv[ys:ys+hs, xs:xs+ws] roi_hist = cv2.calcHist([hsv_roi],[0],maskroi,[180],[0,180]) cv2.normalize(roi_hist,roi_hist,0,255,cv2.NORM_MINMAX) trackObject = 1 dst = cv2.calcBackProject([hsv], [0], roi_hist, [0, 180], 1) dst &= mask ret, track_window = cv2.CamShift(dst, track_window, term_crit) pts = cv2.boxPoints(ret) pts = np.int0(pts) print(pts) cv2.drawContours(frame,[pts],0,(0,0,255),3) if selectObject == True and ws>0 and hs>0: cv2.imshow('imshow1',frame[ys:ys+hs,xs:xs+ws]) cv2.bitwise_not(frame[ys:ys+hs,xs:xs+ws],frame[ys:ys+hs,xs:xs+ws]) cv2.imshow('imshow',frame) if cv2.waitKey(10)==32: break cv2.destroyAllWindows()

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

人工智能-计算机视觉实战之路(必备算法+深度学习+项目实战)

系列课程主要分为3大阶段:(1)首先掌握计算机视觉必备算法原理,结合Opencv进行学习与练手,通过实际视项目进行案例应用展示。(2)进军当下最火的深度学习进行视觉任务实战,掌握深度学习中必备算法原理与网络模型架构。(3)结合经典深度学习框架与实战项目进行实战,基于真实数据集展开业务分析与建模实战。整体风格通俗易懂,项目驱动学习与就业面试。 建议同学们按照下列顺序来进行学习:1.Python入门视频课程 2.Opencv计算机视觉实战(Python版) 3.深度学习框架-PyTorch实战/人工智能框架实战精讲:Keras项目 4.Python-深度学习-物体检测实战 5.后续实战课程按照自己喜好选择就可以

linux2.6.1内核源码注释

包含LINUX内核同步、信号、内存、调度、文件系统、网络系统、时钟等部分的源码注释。前后历时三年,算是干货。

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

u-boot-2015.07.tar.bz2

uboot-2015-07最新代码,喜欢的朋友请拿去

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

MySQL 8.0.19安装教程(windows 64位)

话不多说直接开干 目录 1-先去官网下载点击的MySQL的下载​ 2-配置初始化的my.ini文件的文件 3-初始化MySQL 4-安装MySQL服务 + 启动MySQL 服务 5-连接MySQL + 修改密码 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置初始化的my.ini文件的文件 ...

零基础学C#编程—C#从小白到大咖

本课程从初学者角度出发,提供了C#从入门到成为程序开发高手所需要掌握的各方面知识和技术。 【课程特点】 1 由浅入深,编排合理; 2 视频讲解,精彩详尽; 3 丰富实例,轻松易学; 4 每章总结配有难点解析文档。 15大章节,228课时,1756分钟与你一同进步!

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

编程实现学生基本信息管理程序

编程实现学生基本信息管理程序。学生基本信息包括:学号、姓名、性别、年龄、班级、学院、专业等。具体实现的管理功能如下: (1) 输入并显示多个学生的基本信息; (2) 可根据需要实现学生信息的添加; (

机器学习实战系列套餐(必备基础+经典算法+案例实战)

机器学习实战系列套餐以实战为出发点,帮助同学们快速掌握机器学习领域必备经典算法原理并结合Python工具包进行实战应用。建议学习顺序:1.Python必备工具包:掌握实战工具 2.机器学习算法与实战应用:数学原理与应用方法都是必备技能 3.数据挖掘实战:通过真实数据集进行项目实战。按照下列课程顺序学习即可! 课程风格通俗易懂,用最接地气的方式带领大家轻松进军机器学习!提供所有课程代码,PPT与实战数据,有任何问题欢迎随时与我讨论。

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

土豆浏览器

土豆浏览器可以用来看各种搞笑、电影、电视剧视频

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

玩转Linux:常用命令实例指南

人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。 本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 --------------------------------------------------------------- 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+700元编程礼包。 &nbsp;

基于STM32的电子时钟设计

时钟功能 还有闹钟功能,温湿度功能,整点报时功能 你值得拥有

Python数据清洗实战入门

本次课程主要以真实的电商数据为基础,通过Python详细的介绍了数据分析中的数据清洗阶段各种技巧和方法。

Git 实用技巧

这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。

计算机组成原理算法实现

计算机组成原理算法实现,能够实现定点小数的机器数表示、定点小数的变形补码加减运算、定点小数的原码一位乘法运算和浮点数的加减运算。

为linux系统设计一个简单的二级文件系统

实验目的: 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 实验要求: 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条)

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

本课程适合CCNA或HCNA网络小白同志,高手请绕道,可以直接学习进价课程。通过本预科课程的学习,为学习网络工程师、思科CCNA、华为HCNA这些认证打下坚实的基础! 重要!思科认证2020年2月24日起,已启用新版认证和考试,包括题库都会更新,由于疫情原因,请关注官网和本地考点信息。题库网络上很容易下载到。

2019全国大学生数学建模竞赛C题原版优秀论文

2019全国大学生数学建模竞赛C题原版优秀论文,PDF原版论文,不是图片合成的,是可编辑的文字版。共三篇。 C044.pdf C137.pdf C308.pdf

土豆SDK(Java版)-非官方

由于土豆SDK一直建设中,最近几天抽空写了一套java的SDK。包含了现有的所有请求协议。本套SDK中仅提供了oAuth的方式(引用oAuth.net的java版示例),并没有在框架中实现,涉及到登录

Android小项目——新闻APP(源码)

Android小项目——新闻APP(源码),一个很简单的可以练手的Android Demo Ps:下载之前可以先看一下这篇文章——https://blog.csdn.net/qq_34149526/a

实用主义学Python(小白也容易上手的Python实用案例)

原价169,限时立减100元! 系统掌握Python核心语法16点,轻松应对工作中80%以上的Python使用场景! 69元=72讲+源码+社群答疑+讲师社群分享会&nbsp; 【哪些人适合学习这门课程?】 1)大学生,平时只学习了Python理论,并未接触Python实战问题; 2)对Python实用技能掌握薄弱的人,自动化、爬虫、数据分析能让你快速提高工作效率; 3)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; 4)想修炼更好的编程内功,优秀的工程师肯定不能只会一门语言,Python语言功能强大、使用高效、简单易学。 【超实用技能】 从零开始 自动生成工作周报 职场升级 豆瓣电影数据爬取 实用案例 奥运冠军数据分析 自动化办公:通过Python自动化分析Excel数据并自动操作Word文档,最终获得一份基于Excel表格的数据分析报告。 豆瓣电影爬虫:通过Python自动爬取豆瓣电影信息并将电影图片保存到本地。 奥运会数据分析实战 简介:通过Python分析120年间奥运会的数据,从不同角度入手分析,从而得出一些有趣的结论。 【超人气老师】 二两 中国人工智能协会高级会员 生成对抗神经网络研究者 《深入浅出生成对抗网络:原理剖析与TensorFlow实现》一书作者 阿里云大学云学院导师 前大型游戏公司后端工程师 【超丰富实用案例】 0)图片背景去除案例 1)自动生成工作周报案例 2)豆瓣电影数据爬取案例 3)奥运会数据分析案例 4)自动处理邮件案例 5)github信息爬取/更新提醒案例 6)B站百大UP信息爬取与分析案例 7)构建自己的论文网站案例

相关热词 c# 局部 截图 页面 c#实现简单的文件管理器 c# where c# 取文件夹路径 c# 对比 当天 c# fir 滤波器 c# 和站 队列 c# txt 去空格 c#移除其他类事件 c# 自动截屏
立即提问