基于CNN的笑脸识别,并在此基础上进行口罩识别。(仿照猫狗识别)
环境
win10 + TensorFlow2.0 + Keras + Genki4k笑脸数据集、口罩数据集
准备阶段:
配置好win10+TensorFlow的环境:
pip install tensorflow-gpu==2.2.1
pip安装Keras
pip install keras
下载Genki4k笑脸数据集,和口罩数据集到本地。
1. 理解人脸图像特征提取方法
1.1 HOG(方向梯度直方图)
方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。
它通过计算和统计图像局部区域的梯度方向直方图来构成特征。HoG特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。
-
主要思想:
在一副图像中,局部目标的表象和形状(appearance and shape)能够被梯度或边缘的方向密度分布很好地描述。(本质:梯度的统计信息,而梯度主要存在于边缘的地方)。 -
具体实现方法:
首先将图像分成小的连通区域,我们把它叫细胞单元。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。 -
提高性能:
把这些局部直方图在图像的更大的范围内(我们把它叫区间或block)进行对比度归一化(contrast-normalized),所采用的方 法是:先计算各直方图在这个区间(block)中的密度,然后根据这个密度对区间中的各个细胞单元做归一化。通过这个归一化后,能对光照变化和阴影获得更 好的效果。 -
优点:
与其他的特征描述方法相比,HOG有很多优点。首先,由于HOG是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上。其次,在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。因此HOG特征是特别适合于做图像中的人体检测的。 -
实现过程:
- 灰度化
- 归一化
- 计算梯度
- 将图像划分成小cell
- 统计每个cell的梯度直方图,得到每个cell的特征描述器
- 将几个小cell组成一个block,一个block内所有cell的特征描述器串联起来,得到每个block的HOG特征描述器。
- 将图像内的所有block的HoG特征串联起来,得到整个图像的HOG特征描述器。
这个就是最终的可供分类使用的特征向量了。
1.2 Dlib
总体来说就是提取人脸上的68个特征点。Dlib将每张人脸映射为一个128维的向量,当两个向量之间的Euclidean距离小于0.6时,可以认为属于同一个人。具体的还是需要见Dlib官网的信息(但不一定能看懂)
1.3 卷积神经网络(CNN)特征
卷积神经网络(Convolutional Neural Networks, CNN)是深度学习的代表算法之一。基于仿造生物的视知觉机制构建,随着深度学习的发展而不断进步。
CNN的网络结构包括:输入层,隐含层,输出层。
隐含层里又包括了(卷积层,池化层,Inception模块和全连接层),其中
卷积层的作用是对输入数据进行特征提取;
池化层的作用是对卷积层特征提取后的特征图进行特征选择和过滤;
Inception模块是对多个卷积层和池化层进行堆叠所得的隐含层构筑;
全连接层的作用则是对提取的特征进行非线性组合以得到输出,即全连接层本身不被期望具有特征提取能力,而是试图利用现有的高阶特征完成学习目标。
其中很多东西都还没学懂,还需要进一步的学习。
2. 对Genki4k笑脸数据集进行正负样本划分,模型训练,测试过程(基于CNN),并输出训练精度和测试精度
2.1 正负样本划分
导入包
import keras
import os, shutil
先创建对应的文件夹
# The path to the directory where the original
# dataset was uncompressed
original_dataset_dir = './genki4k/files'# The directory where we will
# store our smaller dataset
base_dir = 'data'
os.mkdir(base_dir)# Directories for our training,
# validation and test splits
train_dir = os.path.join(base_dir, 'train')
os.mkdir(train_dir)
validation_dir = os.path.join(base_dir, 'validation')
os.mkdir(validation_dir)
test_dir = os.path.join(base_dir, 'test')
os.mkdir(test_dir)# Directory with our training smile pictures
train_smile_dir = os.path.join(train_dir, 'smile')
os.mkdir(train_smile_dir)# Directory with our training not smile pictures
train_notsmile_dir = os.path.join(train_dir, 'notsmile')
os.mkdir(train_notsmile_dir)# Directory with our validation smile pictures
validation_smile_dir = os.path.join(validation_dir, 'smile')
os.mkdir(validation_smile_dir)# Directory with our validation not smile pictures
validation_notsmile_dir = os.path.join(validation_dir, 'notsmile')
os.mkdir(validation_notsmile_dir)# Directory with our validation smile pictures
test_smile_dir = os.path.join(test_dir, 'smile')
os.mkdir(test_smile_dir)# Directory with our validation not smile pictures
test_notsmile_dir = os.path.join(test_dir, 'notsmile')
os.mkdir(test_notsmile_dir)
smile的正样本划分
将前1000张图片划分给smile的训练集train_smile_dir
# Copy first 1000 smile images to train_smile_dir
# 0-9
fnames = ['file000{}.jpg'.format(i) for i in range(1,10)]
for fname in fnames:src = os.path.join(original_dataset_dir, fname)dst = os.path.join(train_smile_dir, fname)shutil.copyfile(src, dst)
# 10-99
fnames = ['file00{}.jpg'.format(i) for i in range(10,100)]
for fname in fnames:src = os.path.join(original_dataset_dir, fname)dst = os.path.join(train_smile_dir, fname)shutil.copyfile(src, dst)
# 100-999
fnames = ['file0{}.jpg'.format(i) for i in range(100,1000)]
for fname in fnames:src = os.path.join(original_dataset_dir, fname)dst = os.path.join(train_smile_dir, fname)shutil.copyfile(src, dst)fnames = ['file{}.jpg'.format(1000)]
for fname in fnames:src = os.path.join(original_dataset_dir, fname)dst = os.path.join(train_smile_dir, fname)shutil.copyfile(src, dst)
将之后的500张划分给smile的验证集validation_smile_dir
# Copy next 500 smile images to validation_smile_dir
fnames = ['file{}.jpg'.format(i) for i in range(1000, 1500)]
for fname in fnames:src = os.path.join(original_dataset_dir, fname)dst = os.path.join(validation_smile_dir, fname)shutil.copyfile(src, dst)
再将后面的500张划分给smile的测试集test_smile_dir
fnames = ['file{}.jpg'.format(i) for i in range(1500, 2000)]
for fname in fnames:src = os.path.join(original_dataset_dir, fname)dst = os.path.join(test_smile_dir, fname)shutil.copyfile(src, dst)
将2000到3000的图片划分给not smile的训练集train_notsmile_dir
fnames = ['file{}.jpg'.format(i) for i in range(2000,3000)]
for fname in fnames:src = os.path.join(original_dataset_dir, fname)dst = os.path.join(train_notsmile_dir, fname)shutil.copyfile(src, dst)
再将3000到3500的图片划分not smile的验证集validation_notsmile_dir
fnames = ['file{}.jpg'.format(i) for i in range(3000, 3500)]
for fname in fnames:src = os.path.join(original_dataset_dir, fname)dst = os.path.join(validation_notsmile_dir, fname)shutil.copyfile(src, dst)
将最后500张图片划分到not smile的测试集test_notsmile_dir
fnames = ['file{}.jpg'.format(i) for i in range(3500, 4000)]
for fname in fnames:src = os.path.join(original_dataset_dir, fname)dst = os.path.join(test_notsmile_dir, fname)shutil.copyfile(src, dst)
听说随机划分的话模型会更符合实际一些,但是这里我没有这样划分,所以可能结果没能达到理想状态。
看一下各个数据集吧:
print('total training smile images:', len(os.listdir(train_smile_dir)))
print('total training not smile images:', len(os.listdir(train_notsmile_dir)))
print('total validation smile images:', len(os.listdir(validation_smile_dir)))
print('total validation not smile images:', len(os.listdir(validation_notsmile_dir)))
print('total test smile images:', len(os.listdir(test_smile_dir)))
print('total test not smile images:', len(os.listdir(test_notsmile_dir)))
2.2 模型训练
先创建模型:
from keras import layers
from keras import modelsmodel = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu',input_shape=(150, 150, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model.summary()
使用Adam优化器和二元交叉熵
from keras import optimizersmodel.compile(loss='binary_crossentropy',optimizer=optimizers.Adam(lr=1e-4),metrics=['acc'])
然后就是数据的预处理阶段了:
from keras.preprocessing.image import ImageDataGenerator# All images will be rescaled by 1./255
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)train_generator = train_datagen.flow_from_directory(# This is the target directorytrain_dir,# All images will be resized to 150x150target_size=(150, 150),batch_size=20,# Since we use binary_crossentropy loss, we need binary labelsclass_mode='binary')validation_generator = test_datagen.flow_from_directory(validation_dir,target_size=(150, 150),batch_size=20,class_mode='binary')
然后就可以开始模型的训练了,设置了Epoch为30,每个epoch里有100个数据
history = model.fit_generator(train_generator,steps_per_epoch=100,epochs=30,validation_data=validation_generator,validation_steps=50)
训练完毕后保存该模型
model.save('smile_and_notsmile_1.h5')
结果:请看输出精度
从结果得知,模型训练已经过拟合了
然后我们来进行数据增强操作:
datagen = ImageDataGenerator(rotation_range=40,width_shift_range=0.2,height_shift_range=0.2,shear_range=0.2,zoom_range=0.2,horizontal_flip=True,fill_mode='nearest')
# This is module with image preprocessing utilities
from keras.preprocessing import imagefnames = [os.path.join(train_smile_dir, fname) for fname in os.listdir(train_smile_dir)]# We pick one image to "augment"
img_path = fnames[7]# Read the image and resize it
img = image.load_img(img_path, target_size=(150, 150))# Convert it to a Numpy array with shape (150, 150, 3)
x = image.img_to_array(img)# Reshape it to (1, 150, 150, 3)
x = x.reshape((1,) + x.shape)# The .flow() command below generates batches of randomly transformed images.
# It will loop indefinitely, so we need to `break` the loop at some point!
i = 0
for batch in datagen.flow(x, batch_size=1):plt.figure(i)imgplot = plt.imshow(image.array_to_img(batch[0]))i += 1if i % 4 == 0:break
plt.show()
可以看到如下图片:
由于对图像进行了增强,图片也增加了,所以需要重新建立模型,然后重新训练,然后就按照之前的模型构造就行了,需要构建模型之后添加:
train_datagen = ImageDataGenerator(rescale=1./255,rotation_range=40,width_shift_range=0.2,height_shift_range=0.2,shear_range=0.2,zoom_range=0.2,horizontal_flip=True,)# Note that the validation data should not be augmented!
test_datagen = ImageDataGenerator(rescale=1./255)train_generator = train_datagen.flow_from_directory(# This is the target directorytrain_dir,# All images will be resized to 150x150target_size=(150, 150),batch_size=32,# Since we use binary_crossentropy loss, we need binary labelsclass_mode='binary')validation_generator = test_datagen.flow_from_directory(validation_dir,target_size=(150, 150),batch_size=32,class_mode='binary')
然后再次训练增强后的图像,这里图片增强之后的图片多了,所以也将Epoch增大了,而且跑得也慢了。
history = model.fit_generator(train_generator,steps_per_epoch=100,epochs=100,validation_data=validation_generator,validation_steps=50)
结果:见输精度
2.3 模型测试
在网上随便照一张微笑的图片,来进行测试:
代码如下:
import numpy as np
img = image.load_img("./2.jpg",target_size=(150,150))
img_tensor=image.img_to_array(img)/255
img_tensor=np.expand_dims(img_tensor,axis=0)
prediction = model.predict(img_tensor)
print(prediction)
if prediction[0][0]>0.5:result = 'smile'
else:result = 'no smile'
print(result)
1.jpg:
2.jpg:
准确度还是不太行啊。还是去看看实时摄像头的吧。
2.4 输出精度
从准确率都看出来已经过拟合了,再看看图片吧:
数据增强后:
直方图虽然不好看,但是过拟合程度还是减少了。
3. 完成摄像头采集自己人脸,并对表情进行实时分类判别程序
然后我们就来测试一下自己的人脸吧:
代码如下:
import cv2
from keras.preprocessing import image
from keras.models import load_model
import numpy as np
import dlib
from PIL import Image
# 改成自己模型的路径
model = load_model('E:\\Desktop\\deeplearning\\CNN\\smile_and_notsmile_2.h5')
detector = dlib.get_frontal_face_detector()
video = cv2.VideoCapture(0)
font = cv2.FONT_HERSHEY_SIMPLEXdef rec(img):gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)dets = detector(gray, 1)if dets is not None:for face in dets:left = face.left()top = face.top()right = face.right()bottom = face.bottom()cv2.rectangle(img, (left, top), (right, bottom), (0, 255, 0), 2)img1 = cv2.resize(img[top:bottom, left:right], dsize=(150, 150))img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)img1 = np.array(img1)/255.img_tensor = img1.reshape(-1, 150, 150, 3)prediction = model.predict(img_tensor)print(prediction)if prediction[0][0] < 0.5:result = 'unsmile'else:result = 'smile'cv2.putText(img, result, (left, top), font,2, (0, 255, 0), 2, cv2.LINE_AA)cv2.imshow('Video', img)while video.isOpened():res, img_rd = video.read()if not res:breakrec(img_rd)if cv2.waitKey(1) & 0xFF == ord('q'):break
video.release()
cv2.destroyAllWindows()
准确度还是不稳定,有时候也没有识别出来,可能还是训练算法不够优化、数据不够多吧。
4. 将笑脸数据集,换成口罩数据集,完成口罩是否佩戴的模型训练和测试
重复之前的笑脸数据集测试就好了,修改一下文件路径。
这里好像不能直接修改文件,因为文件夹的结构不一样。而且mask和nomask的图片混在一起了,所以需要将mask和nomask的图片分出来。
因为这里的mask/train文件里包括的xml文件,即是jpg问价的label,可以通过这个xml将图片分类出来。
代码如下:
import os
try:import xml.etree.cElementTree as ET #解析xml的c语言版的模块
except ImportError:import xml.etree.ElementTree as ET
import cv2 as cv
import shutil
# 这里需要换成自己的路径
i_path = 'E:\\Desktop\\deeplearning\\CNN\\mask\\train'
# os.mkdir("E:\\Desktop\\deeplearning\\CNN\\mask\\train\\mask\\")
# os.mkdir("E:\\Desktop\\deeplearning\\CNN\\mask\\train\\nomask\\")
filelist = os.listdir(i_path)
i=0
for files in filelist:i=i+1print(i)file_pre, ext = os.path.splitext(files)# imgfile = ImgPath + image# xmlfile = AnnoPath + image_pre + '.xml'if ext == '.xml':DOMTree = ET.ElementTree(file=i_path+"\\"+files)collection = DOMTree.getroot()img = i_path+"\\"+file_pre + '.jpg'objectlist = collection.findall('object')# print(objectlist[0].find("name"))if objectlist[0].find('name').text == "face":shutil.copyfile(img,"E:\\Desktop\\deeplearning\\CNN\\mask\\train\\nomask\\"+file_pre+".jpg")print("nomask")elif objectlist[0].find('name').text == "face_mask":shutil.copyfile(img,"E:\\Desktop\\deeplearning\\CNN\\mask\\train\\mask\\"+file_pre+".jpg")print("mask")else:print("失败")else:continue
分类结果:
mask:
nomask:
然后将mask和nomask文件夹,放到训练文件夹下,不是这个train文件夹,而需要新建一个,例如我的文件夹结构
然后就按照猫狗识别的步骤,继续进行就好了,从模型开始,然后修改两个文件夹路径:
然后就一次进行下去,一直到训练出结果,训练结果如图:
居然没有过拟合,还是比较好的。
增强之后:
来测试一下吧:
进行测试集的测试:
代码如下:
from keras.preprocessing import image
import numpy as np
# 自己的图片路径
img = image.load_img("E:\\Desktop\\deeplearning\\CNN\\mask\\test\\71.jpg",target_size=(150,150))
img_tensor=image.img_to_array(img)/255
img_tensor=np.expand_dims(img_tensor,axis=0)
prediction = model.predict(img_tensor)
print(prediction)
if prediction[0][0]>0.5:result = 'no mask'
else:result = 'mask'
print(result)
多测试几次:
然后来测试实时数据集
可能还是没有训练好吧,但是照片上的全部都能完全的识别画出来,视频流上面的带了口罩就定位不到了,是摄像头的原因吗,还是dlib的版本过低了。这些都有可能,具体的原因我还没发现。
到这里,我们的CNN的笑脸识别及口罩识别都全部完成了。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- NLP笔记 CS224n (6) —— RNN 和 Language Model
传送门 笔者在总结时跳过了第3,4,5节课。其中第3,4节课分别介绍了神经网络和反向传播,笔者假定读者有着基本的机器学习和神经网络相关的知识,所以掠过了这两章内容。其中第5节课介绍了语法结构,但是因为与笔者目前方向不一致,故略去。 本节为第6节课,介绍了Language Mo…...
2024/5/1 14:47:57 - 网站上查找到公司有不属实的负面新闻应该如何删除?
数以亿计的网络信息极大地丰富了人们的资讯,而过多零散的信息又难以使人们还原真实的事实。这就是造成当今危机越来越呈现公众化的根本原因。网络上搜索一些品牌词,搜索的内容一部分是负面的,要知道负面的东西在网络上出现的时间越长,对于企业造成的损失也越大。如何处理这…...
2024/5/1 14:11:47 - 图灵的传奇人生
@TOP 艾伦麦席森图灵简介 艾伦麦席森图灵(英语:Alan Mathison Turing,1912年6月23日—1954年6月7日),英国数学家、逻辑学家,被称为**计算机科学之父,人工智能之父。1931年图灵进入剑桥大学国王学院,毕业后到美国普林斯顿大学攻读博士学位,第二次世界大战爆发后回到剑桥…...
2024/5/1 17:53:49 - 计算机界的最高奖项—“图灵奖”
计算机科学之父—图灵简介 1. 生平简介艾伦麦席森图灵(英语:Alan Mathison Turing,1912年6月23日——1954年6月7日),英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。1931年图灵进入剑桥大学国王学院,毕业后到美国普林斯顿大学攻读博士学位,第二次世界大战爆…...
2024/5/1 11:00:37 - 0基础怎么学web前端?新手到大神的进阶路线在这!
0基础怎么学web前端?新手到大神的进阶路线在这!结合个人经历总结的前端入门方法,总结从零基础到具备前端基本技能的道路、学习方法、资料。由于能力有限,不能保证面面俱到,只是作为入门参考,面向初学者,让初学者少走弯路。互联网的快速发展和激烈竞争,用户体验成为一个…...
2024/5/1 10:51:45 - 安卓插件化之插件式换肤(2)
安卓插件化之插件式换肤(2)管理类的搭建初始化与保存最后内存泄露问题 安卓插件化之插件式换肤(1) 管理类的搭建 1 皮肤管理类 SkinManager 2 皮肤资源 SkinResource 3 皮肤支持类 SkinSupport 回到我们的BaseActivity@Nullable@Overridepublic View onCreateView(@Nullab…...
2024/5/1 15:58:46 - ajax的入门,在前端接受后台服务器发送的内容并渲染到页面
理解ajax以及请求的步骤 首先他是:Asynchronous JavaScript & XML。Ajax是web开发的一种技术。左边展示的是普通的客户端和服务器的请求和响应。我们知道客户端是用来请求东西的,而服务器作用就是响应对应的内容给客户端。可以理解为一个伸手要,一个给。 右边则是使用aj…...
2024/5/1 8:56:42 - 阿里巴巴面试:Java 集合知识点(附图文解析)
作为Java求职者,无数次被问到过集合的知识,同时作为一位"周角公司小菜面试官”,我也肯定会问面试者集合的知识,所以就有了这篇,源码较多,建议静下心来哈,一起学习,一起进步面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,需要将对象进…...
2024/5/1 16:13:16 - Spring、CXF集成WebServices服务端与客户端开发
Spring、CXF集成WebServices服务端与客户端开发 服务端 maven创建webapp项目,并引入相关依赖 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001…...
2024/5/1 13:25:53 - 【redis】Jedis、事务、持久化、消息
微服务与分布式一、Jedis的使用二、Redis中的事务三、Redis中的持久化1. RDB(Redis DataBase)2. AOF(Append Of File)3. 两者的区别3.1 RDB优点与缺点优点缺点3.2 AOF优点与缺点优点缺点四、Redis中的消息的订阅与发布五、使用Redis图形化程序界面 一、Jedis的使用 1.修改/…...
2024/5/1 19:02:39 - js节点练习
标题 获取元素属性值 1:element.属性 2:element.getAttribute(‘属性’) 可以用来获取自定义属性 设置元素属性值 element.属性=‘值’ element.setAttribute(‘属性’,‘值’);主要针对自定义属性 节点 parentNode 父节点 得到的是最近父级节点 换行属于文本…...
2024/5/1 12:15:24 - Excel上传与下载
Excel上传与下载 pom文件添加依赖<!-- excel导入导出所用jar包 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.7</version></dependency><dependency><groupId>…...
2024/5/1 11:00:42 - Web-JS
JSJS知识方法的声明练习平方猜数字计算器翻牌子 JS知识 方法的声明 <!DOCTYPE html> <html><head><meta charset="utf-8"><title></title></head><body><input type="button" value="按钮" …...
2024/5/1 13:38:03 - HBase常见问题总结
HBase常见问题总结一、时间校正二、“error telling master we are up”三、“org.apache.hadoop.hbase.PleaseHoldException: Master is initializing”四、“stopping hbasecat:/tmp/hbase-root-master.pid:No such file or directory”五、HMaster启动起来之后自动挂掉(mas…...
2024/5/1 14:18:58 - Cookie的使用
Cookie的使用 1.什么是CookieCookie是在浏览器访问Web服务器的某个资源时,由Web服务器在HTTP响应中附带传递给浏览器的一小段数据 一旦Web浏览器保存了某个Cookie,那么它以后每次访问该web服务器时,都应该在Http请求中将这个Cookie回传给Web服务器 一个Cookie主要由标识该信息…...
2024/5/1 7:27:52 - 树莓派结合英特尔神经计算棒二代(NCS2)部署人工智能应用
在一块新的树莓派在经过烧录系统和替换镜像源后,我们该如何利英特尔神经计算棒二代(NCS2)进行边缘端(或者叫终端)的AI硬件部署来完成机器视觉/人脸识别等场景的应用呢??本文提供了NCS2在AI硬件平台部署有关的环境配置方法。 笔者原本是小白一枚,入坑树莓派不久,学习期…...
2024/5/1 12:48:18 - jupyter notebook启动时报错Creating Notebook Failed An error occurred while creating a new notebook
我在启动jupyter notebook之后很卡,在网上搜了一下,说时浏览器问题,换了也不行,并且在创建新的notebook时报错Creating Notebook Failed An error occurred while creating a new notebook,搜索许久也没有解决问题。 看来还是得自己来。 看了一下,我装了两个版本的python…...
2024/5/1 14:31:58 - 安装Anaconda时遇到的问题,环境变量的设置
详细安装教程参考 我是按照上述链接步骤一步步安装的,链接里也提供了Anaconda下载的地址,注意下载对应的版本,32位或者是64位的。我没有安装在默认路径里,而是装在了E盘,命名为anaconda1。问题就卡在下一步了,环境变量怎么设置呢,看了资料,说要把Anaconda和Scripts的路…...
2024/5/1 14:24:15 - LeetCode ---- 82、删除排序链表中的重复元素 II
题目链接思路一:遍历链表,使用一个map来记录每个节点值出现的次数再次遍历链表,若当前节点的值只出现了一次,那么就进行保留,否则跳过public ListNode deleteDuplicates(ListNode head) {if (head == null || head.next == null) {return head;}HashMap<Integer, Integ…...
2024/4/16 8:44:52 - 前端基础总结:HTML基础知识
前端基础总结:HTML基础知识HTML基础知识1、HTML的历史:HTML,XHTML2、HTML的全局属性:全局标准属性,全局事件属性3、HTML的元素:up是一个从事前端开发6年的程序员,在前端领域混了这几年,总结了一套前端学习的精讲视频和学习路线,如果有对前端开发感兴趣的伙伴,不管你是…...
2024/4/16 8:44:22
最新文章
- c#word文档:1.创建空白Word文档及保存/2.添加页内容...
---创建空白Word文档 --- (1)创建一个名为OfficeOperator的类库项目。引用操作Word的.NET类库 (2)定义用于操作Word的类WordOperator1。添加引用Microsoft.Office.Interop.Word命名空间。 (3)为WordOper…...
2024/5/1 19:10:36 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Go语言中如何实现继承
完整课程请点击以下链接 Go 语言项目开发实战_Go_实战_项目开发_孔令飞_Commit 规范_最佳实践_企业应用代码-极客时间 Go语言中没有传统意义上的类和继承的概念,但可以通过嵌入类型(embedded types)来实现类似的功能。嵌入类型允许一个结构…...
2024/4/30 4:14:53 - HarmonyOS NEXT应用开发之@State装饰器:组件内状态
State装饰的变量,或称为状态变量,一旦变量拥有了状态属性,就和自定义组件的渲染绑定起来。当状态改变时,UI会发生对应的渲染改变。 在状态变量相关装饰器中,State是最基础的,使变量拥有状态属性的装饰器&a…...
2024/5/1 2:10:44 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/1 17:30:59 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/30 18:14:14 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/30 18:21:48 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/30 9:43:09 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/29 20:46:55 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/30 22:21:04 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/1 4:32:01 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/30 9:42:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/30 9:43:22 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/30 9:42:49 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57