概述

      本文属于跟着b站学习pytorch笔记系列。网上很多大佬 关于renet模型图像识别的分类文章很多,但是图像部分通常就是一笔带过,给个链接。还是看了知乎的文章从头准备了数据集。

一 数据集准备

该数据集由102类产自英国的花卉组成。每类由40-258张图片组成

Visual Geometry Group - University of Oxford

就是红圈的1,4,5部分。 1  是8000多张图片压缩包,

4,5 可以用wget下载后拷到 工程文件夹 

imagelabels.mat

总共有8189列,每列上的数字代表类别号。

setid.mat

-trnid字段:总共有1020列,每10列为一类花卉的图片,每列上的数字代表图片号。    
-valid字段:总共有1020列,每10列为一类花卉的图片,每列上的数字代表图片号。    
-tstid字段:总共有6149列,每一类花卉的列数不定,每列上的数字代表图片号。
import scipy.io  # 用于加载mat文件
import numpy as np
import os
from PIL import Image
import shutillabels = scipy.io.loadmat('./data/flower_data/imagelabels.mat')
labels = np.array(labels['labels'][0]) - 1print("labels:", labels)######## flower dataset: train test valid 数据id标识 ########
setid = scipy.io.loadmat('./data/flower_data/setid.mat')validation = np.array(setid['valid'][0]) - 1
np.random.shuffle(validation)train = np.array(setid['trnid'][0]) - 1
np.random.shuffle(train)test = np.array(setid['tstid'][0]) - 1
np.random.shuffle(test)
######## flower data path 数据保存路径 ########
flower_dir = list()######## flower data dirs 生成保存数据的绝对路径和名称 ########
for img in os.listdir("/Users/benmu/Downloads/jpg"):######## flower data ########flower_dir.append(os.path.join("/Users/benmu/Downloads/jpg", img))######## flower data dirs sort 数据的绝对路径和名称排序 从小到大 ########
flower_dir.sort()# print(flower_dir)des_folder_train = "/Users/benmu/PycharmProjects/pythonProject128/data/flower_data/train"
for tid in train:######## open image and get label ########img = Image.open(flower_dir[tid])# print(flower_dir[tid])img = img.resize((256, 256), Image.ANTIALIAS)lable = labels[tid]+1# print(lable)path = flower_dir[tid]print("path:", path)base_path = os.path.basename(path)print("base_path:", base_path)classes = str(lable)class_path = os.path.join(des_folder_train, classes)# 判断结果if not os.path.exists(class_path):os.makedirs(class_path)print("class_path:", class_path)despath = os.path.join(class_path, base_path)print("despath:", despath)img.save(despath)
des_folder_validation = "/Users/benmu/PycharmProjects/pythonProject128/data/flower_data/validation"for tid in validation:######## open image and get label ########img = Image.open(flower_dir[tid])# print(flower_dir[tid])img = img.resize((256, 256), Image.ANTIALIAS)lable = labels[tid]+1# print(lable)path = flower_dir[tid]print("path:", path)base_path = os.path.basename(path)print("base_path:", base_path)classes =  str(lable)class_path = os.path.join(des_folder_validation, classes)# 判断结果if not os.path.exists(class_path):os.makedirs(class_path)print("class_path:", class_path)despath = os.path.join(class_path, base_path)print("despath:", despath)img.save(despath)des_folder_test = "/Users/benmu/PycharmProjects/pythonProject128/data/flower_data/test"for tid in test:######## open image and get label ########img = Image.open(flower_dir[tid])# print(flower_dir[tid])img = img.resize((256, 256), Image.ANTIALIAS)lable = labels[tid]+1# print(lable)path = flower_dir[tid]print("path:", path)base_path = os.path.basename(path)print("base_path:", base_path)classes = str(lable)class_path = os.path.join(des_folder_test, classes)# 判断结果if not os.path.exists(class_path):os.makedirs(class_path)print("class_path:", class_path)despath = os.path.join(class_path, base_path)print("despath:", despath)img.save(despath)

分类号效果: 

这里图像统一调整尺寸256x256. 常见的模型需要这个或者224x224的尺寸。也可以 不调整后面的图像增强部分会处理。

 train,validation 都是1020,test 6149可以自己调整,我就是把test 改为train.

数据增强:

框架已经实现好了,不需要opencv单独处理 。

data_dir = './data/flower_data/'
train_dir = data_dir + '/train'
valid_dir = data_dir + '/valid'# 进行数据增强操作
data_transforms = {'train': transforms.Compose([transforms.RandomRotation(45),  # 随机旋转,-45到45度transforms.CenterCrop(224),  # 从中心开始裁剪,将其剪为224transforms.RandomHorizontalFlip(p=0.5),  # 有p的概率随机水平反转transforms.RandomVerticalFlip(p=0.5),  # 垂直反转transforms.ColorJitter(brightness=0.2, contrast=0.1, saturation=0.1, hue=0.1),  ##亮度,对比度,饱和度,色相transforms.RandomGrayscale(p=0.025),  # 有0.025%的概率变为灰度图像transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),  # 均值,方差]),'valid': transforms.Compose([transforms.Resize(256),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])])
}

图像增加就是对训练集上,旋转、裁剪、最后是归一化。valid 不需要旋转 。

batch_size = 8
# 入参:path、增强
image_datasets = {x: datasets.ImageFolder(os.path.join(data_dir, x), data_transforms[x]) for x in ['train', 'valid']}
dataloaders = {x: torch.utils.data.DataLoader(image_datasets[x], batch_size=batch_size, shuffle=True) for x in['train', 'valid']}
dataset_sizes = {x: len(image_datasets[x]) for x in ['train', 'valid']}
class_names = image_datasets['train'].classes
print(image_datasets)

打印image_datasets包含的信息:

{'train': Dataset ImageFolderNumber of datapoints: 6149Root location: ./data/flower_data/trainStandardTransform
Transform: Compose(RandomRotation(degrees=[-45.0, 45.0], interpolation=nearest, expand=False, fill=0)CenterCrop(size=(224, 224))RandomHorizontalFlip(p=0.5)RandomVerticalFlip(p=0.5)ColorJitter(brightness=[0.8, 1.2], contrast=[0.9, 1.1], saturation=[0.9, 1.1], hue=[-0.1, 0.1])RandomGrayscale(p=0.025)ToTensor()Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])), 'valid': Dataset ImageFolderNumber of datapoints: 1020Root location: ./data/flower_data/validStandardTransform
Transform: Compose(Resize(size=256, interpolation=bilinear, max_size=None, antialias=None)CenterCrop(size=(224, 224))ToTensor()Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]))}

 标签对应的实际名字  cat_to_name.json 

展示数据

注意tensor的数据需要转换成numpy的格式,而且还需要还原回标准化的结果

def im_convert(tensor):image = tensor.to("cpu").clone().detach()image = image.numpy().squeeze()##因为tensor是c*h*w,我们需要把他变成h*w*cimage = image.transpose(1, 2, 0)image = image * np.array((0.229, 0.224, 0.225)) + np.array((0.485, 0.456, 0.406))##clip函数,将小于0的数字变为0,将大于1的数字变为1image = image.clip(0, 1)return imagefig=plt.figure(figsize=(20, 12))
columns = 4
rows = 2dataiter = iter(dataloaders['valid'])
inputs, classes = dataiter.next()for idx in range (columns*rows):ax = fig.add_subplot(rows, columns, idx+1, xticks=[], yticks=[])ax.set_title(cat_to_name[str(int(class_names[classes[idx]]))])plt.imshow(im_convert(inputs[idx]))
plt.show()

二 .加载models中提供的模型 

迁移 学习的目的,使用已有模型的权重跟偏置参数,作为我们的初始化的参数。尽可能吧自己的模型与已有的模型近似。

学习什么?通常两种策略:A 接着训练,B冻住模型层,只更改全连接层。

2.1是否用GPU训练

# 是否用GPU训练
train_on_gpu = torch.cuda.is_available()if not train_on_gpu:print('CUDA is not available.  Training on CPU ...')
else:print('CUDA is available!  Training on GPU ...')device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

 2.2使用训练好的renet

model_ft = models.resnet152()

因为我的mac没有cuda,用不了GPU,输入的图片224x224x3,所以模型:resnet152估计不行。 

全连接层out_feature=1000,要修改为自己的输出102

2.3 pytorch官网例子,定义图像分类模型 

这里只是列举了resnet. vgg ,其他的没贴上

model_name = 'resnet'  # 可选的比较多 ['resnet', 'alexnet', 'vgg', 'squeezenet', 'densenet', 'inception']
# 是否用人家训练好的特征来做
feature_extract = Truedef set_parameter_requires_grad(model, feature_extracting):  # 使用resnet训练好的权重参数,不再训练if feature_extracting:for param in model.parameters():param.requires_grad = Falsedef initialize_model(model_name, num_classes, feature_extract, use_pretrained=True):# 选择合适的模型,不同模型的初始化方法稍微有点区别model_ft = Noneinput_size = 0if model_name == "resnet":""" Resnet152"""model_ft = models.resnet50(pretrained=use_pretrained)  # 下载resnet模型到本地set_parameter_requires_grad(model_ft, feature_extract)num_ftrs = model_ft.fc.in_featuresmodel_ft.fc = nn.Sequential(nn.Linear(num_ftrs, 102),  # 全连接层输出改为我们的图像类别102nn.LogSoftmax(dim=1))  # 在softmax的结果上再做多一次log运算input_size = 224elif model_name == "vgg":""" VGG11_bn"""model_ft = models.vgg16(pretrained=use_pretrained)set_parameter_requires_grad(model_ft, feature_extract)num_ftrs = model_ft.classifier[6].in_featuresmodel_ft.classifier[6] = nn.Linear(num_ftrs, num_classes)input_size = 224else:print("Invalid model name, exiting...")exit()return model_ft, input_size

2.4设置哪些层需要训练

model_ft, input_size = initialize_model(model_name, 102, feature_extract, use_pretrained=True)#GPU计算
model_ft = model_ft.to(device)# 模型保存
filename='checkpoint.pth'# 是否训练所有层
params_to_update = model_ft.parameters()
print("Params to learn:")
if feature_extract:params_to_update = []for name,param in model_ft.named_parameters():if param.requires_grad == True:params_to_update.append(param)print("\t",name)
else:for name,param in model_ft.named_parameters():if param.requires_grad == True:print("\t",name)

输出参数:

Params to learn:
     fc.0.weight
     fc.0.bias

打印模型,可以看到最后全连接层的输出已经改为102

注意:models.resnet152(pretrained=use_pretrained) #下载resnet模型到本地

这个200多M可能慢一些,可以看一下本地的路径:.cache/torch/hub/checkpoints

2.5 优化器设置

# 优化器设置
optimizer_ft = optim.Adam(params_to_update, lr=1e-2)
scheduler = optim.lr_scheduler.StepLR(optimizer_ft, step_size=7, gamma=0.1)#optim.lr_scheduler学习率调整策略,学习率每7个epoch衰减成原来的1/10
#最后一层已经LogSoftmax()了,所以不能nn.CrossEntropyLoss()来计算了,nn.CrossEntropyLoss()相当于logSoftmax()和nn.NLLLoss()整合
criterion = nn.NLLLoss()

这里 老师讲了损失函数为什么不用交叉熵改用NLLLoss 

2.6 训练模块

def train_model(model, dataloaders, criterion, optimizer, num_epochs=25, is_inception=False,filename=filename):  #is_inception是否使用其他的网络since = time.time()best_acc = 0"""checkpoint = torch.load(filename)best_acc = checkpoint['best_acc']model.load_state_dict(checkpoint['state_dict'])optimizer.load_state_dict(checkpoint['optimizer'])model.class_to_idx = checkpoint['mapping']"""model.to(device)val_acc_history = []train_acc_history = []train_losses = []valid_losses = []LRs = [optimizer.param_groups[0]['lr']]best_model_wts = copy.deepcopy(model.state_dict())for epoch in range(num_epochs):print('Epoch {}/{}'.format(epoch, num_epochs - 1))print('-' * 10)# 训练和验证for phase in ['train', 'valid']:if phase == 'train':model.train()  # 训练else:model.eval()   # 验证running_loss = 0.0running_corrects = 0# 把数据都取个遍for inputs, labels in dataloaders[phase]:inputs = inputs.to(device)labels = labels.to(device)# 清零optimizer.zero_grad()# 只有训练的时候计算和更新梯度with torch.set_grad_enabled(phase == 'train'):if is_inception and phase == 'train':outputs, aux_outputs = model(inputs)loss1 = criterion(outputs, labels)loss2 = criterion(aux_outputs, labels)loss = loss1 + 0.4*loss2else:#resnet执行的是这里outputs = model(inputs)loss = criterion(outputs, labels)_, preds = torch.max(outputs, 1)# 训练阶段更新权重if phase == 'train':loss.backward()optimizer.step()# 计算损失running_loss += loss.item() * inputs.size(0)running_corrects += torch.sum(preds == labels.data)epoch_loss = running_loss / len(dataloaders[phase].dataset)epoch_acc = running_corrects.double() / len(dataloaders[phase].dataset)time_elapsed = time.time() - sinceprint('Time elapsed {:.0f}m {:.0f}s'.format(time_elapsed // 60, time_elapsed % 60))print('{} Loss: {:.4f} Acc: {:.4f}'.format(phase, epoch_loss, epoch_acc))# 得到最好那次的模型if phase == 'valid' and epoch_acc > best_acc:best_acc = epoch_accbest_model_wts = copy.deepcopy(model.state_dict())state = {'state_dict': model.state_dict(),'best_acc': best_acc,'optimizer' : optimizer.state_dict(),}torch.save(state, filename)if phase == 'valid':val_acc_history.append(epoch_acc)valid_losses.append(epoch_loss)scheduler.step(epoch_loss)if phase == 'train':train_acc_history.append(epoch_acc)train_losses.append(epoch_loss)print('Optimizer learning rate : {:.7f}'.format(optimizer.param_groups[0]['lr']))LRs.append(optimizer.param_groups[0]['lr'])print()time_elapsed = time.time() - sinceprint('Training complete in {:.0f}m {:.0f}s'.format(time_elapsed // 60, time_elapsed % 60))print('Best val Acc: {:4f}'.format(best_acc))# 训练完后用最好的一次当做模型最终的结果model.load_state_dict(best_model_wts)return model, val_acc_history, train_acc_history, valid_losses, train_losses, LRs 

开始训练 :

model_ft, val_acc_history, train_acc_history, valid_losses, train_losses, LRs  = train_model(model_ft, dataloaders, criterion, optimizer_ft, num_epochs=20, is_inception=(model_name=="inception"))

然后我可怜的电脑 就开始嗡嗡的响。19分钟才跑一次。起码要20次吧,老师建议是50次。那么这种级别的数据,不用GPU基本上低配的电脑就没戏了。 

Epoch 0/19
----------
Time elapsed 16m 29s
train Loss: 9.5165 Acc: 0.3410
Time elapsed 18m 49s
valid Loss: 10.0126 Acc: 0.5216
Optimizer learning rate : 0.0010000

明天找个别的windows本子,重新折腾下环境试试。

参考:

基于tensorflow_slim模型调参的flower102鲜花分类过程 - 知乎

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. LeetCode算法入门之二分查找—35. 搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。 如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例 2: 输入: num…...

    2024/4/16 12:27:31
  2. pandas行/列删除

    pandas.DataFrame.drop()函数介绍 官方文档:pandas.DataFrame.drop DataFrame.drop(labelsNone, axis0, indexNone, columnsNone, levelNone, inplaceFalse, errors‘raise’) labels: 要删除的行标签/列标签axis:默认取0删除行,取1删除列in…...

    2024/4/13 17:20:50
  3. GAMES101第四讲Transformation Cont.笔记

    变换2一、3D变换(3D Transformations)二、观测变换(Viewing Transformation)三、View(视图)/Camera transformation四、投影变换(Projection Transformation)五、正交投影&#xff0…...

    2024/4/19 17:46:24
  4. leetcode算法题--和为 K 的最少斐波那契数字数目

    原题链接:https://leetcode-cn.com/problems/find-the-minimum-number-of-fibonacci-numbers-whose-sum-is-k/ 有三个可证明结论: 比k小的那个数肯定被选中两个相邻的数肯定不会被选中存在一种最少的方案不会选择重复的数 class Solution { public:in…...

    2024/4/13 17:20:45
  5. python | time模組練習

    import timeprivate_owner["A11111","B11111","C11111","D11111"] #list of private park-lot owner temporary_car{} gate_enterinput("輸入您的車牌號: ") if gate_enter in private_owner: #detect if the vehicle IS pr…...

    2024/4/27 14:07:32
  6. LeetCode算法入门之二分查找—278. 第一个错误的版本

    你是产品经理,目前正在带领一个团队开发新的产品。 不幸的是,你的产品的最新版本没有通过质量检测。 由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导…...

    2024/4/13 17:20:30
  7. 搞懂JDBC技术看这一篇就够了

    JDBC技术一、JDBC简介1.JDBC是什么?2.JDBC编写步骤二、如何获取数据库连接1.获取数据库连接方法一2.获取数据库连接方法二3.获取数据库连接方法三4.获取数据库连接方法四5.获取数据库连接方法五(推荐)三、JDBC基本操作1.通过Statement操作和访…...

    2024/4/13 17:20:40
  8. 数据结构--排序之希尔排序

    ●🧑个人主页:你帅你先说. ●📃欢迎点赞👍关注💡收藏💖 ●📖既选择了远方,便只顾风雨兼程。 ●🤟欢迎大家有问题随时私信我! ●🧐版权:本文由[你帅…...

    2024/4/13 17:20:25
  9. 开关电源5.2V/2.5A,(双USB输出)生产方案资料,已量产已验证

    开关电源5.2V/2.5A,(双USB输出)生产方案资料,已量产已验证,资料包函BOM,PCB,变压器参数,成本在3到5元左右 8728.99636839304553晴子于TB晴咔电子...

    2024/4/13 17:20:30
  10. 数据库学习笔记Day01--

    什么是数据库? 数据库是长期存储在计算机内部有结构,大量的,共享的数据集合。 长期存储:持久化存储 有结构: 类型:不仅可以存放数据,而且存放的数据是有类型的。 关系:存储数据与…...

    2024/4/13 17:20:20
  11. LeetCode学习-第二十九天

    第二十九天 我使用的C,错误的地方请见谅,文章初衷仅用来督促本人学习,如果恰巧能够给你带来帮助,我会十分开心。 文章目录第二十九天一、39. 组合总和二、40. 组合总和 II三、17. 电话号码的字母组合一、39. 组合总和 给你一个 …...

    2024/4/13 17:20:35
  12. Python 全栈系列137 微服务ESIO

    说明 配合ES数据库做的服务,做个简单的设计。 过去其实对不同的数据库都写过专门的对象,来实现一系列功能,最后大部分都包的很好,但是要使用或者是改动就要回忆…。所以我想以后都以接口形式来处理和数据库的交互。 PS:基础的增删改查我觉得是不够的,使用时通常是一套…...

    2024/4/13 17:20:30
  13. 每日刷题计划Day12-递归+树

    题源:LeetCode LeetCode月徽章每日一题 1414. 和为 K 的最少斐波那契数字数目 给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契数字都可以被使用多次。 斐波那契数字定义为: F1 1 F2 1…...

    2024/4/13 17:20:35
  14. LeetCode算法入门之二分查找—704、二分查找

    给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1: 输入: nums [-1,0,3,5,9,12], target 9 输出: 4 解释: 9 出现在…...

    2024/4/18 16:53:13
  15. 05_Python_变量的基本使用

    变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义变量的类型变量的命名 01. 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建等号()用来给变量…...

    2024/4/13 17:20:45
  16. Github代码复现-IVIX中国波指计算

    目录 参考资料 VIX介绍 总公式 T的计算: σ计算: 代码复现 参考资料 数据、代码:GitHub - Alexdachen/ivix: 中国波指的计算 阅读文章:小C:VIX指数的来龙去脉和iVIX的计算方法 - 知乎 数据的介绍:v…...

    2024/4/7 20:27:05
  17. 同余方程组

    由上可得两个同余方程可得一个线性方程 ,linearEquation(m1,-m2,a2-a1) 可解出y1 代回xa1m1y1,得:x0a1m1y1 > xx0k*min(m1,m2),得一个新方程: xx0(mod min(m1,m2)) 此处涉及的…...

    2024/4/13 17:20:20
  18. 西门子Smart 485数据通讯读取和写入程序,不懂可咨询 ,modbustcp,modbus主站从站通讯

    西门子Smart 485数据通讯读取和写入程序,不懂可咨询 ,modbustcp,modbus主站从站通讯 4529636632419056大圣^...

    2024/4/13 17:20:50
  19. 西门子440变频器电路图 MM4307.5千瓦 MM440 15千瓦 电源驱动板图纸 有了这个15以下基本类似

    西门子440变频器电路图 MM4307.5千瓦 MM440 15千瓦 电源驱动板图纸 有了这个15以下基本类似 9219.90636649443929一帆风顺的我2...

    2024/4/15 2:17:29
  20. day 8——流程控制2——关键字

    break关键字 结束离他最近的循环 这边离他最近的循环是if 所以当和大于300时 结束循环 与上边同理 这边离他最近的是while循环 所以下边会继续打印 下边来看break带标签的使用 continue关键字 停止结束本次循环 继续下一个循环 加深理解 下边例子中停止的是while循环后 又继…...

    2024/4/5 3:08:02

最新文章

  1. 语气确定词库再nlp领域怎么应用?

    语气确定词库在NLP领域的应用探索 在自然语言处理(NLP)领域,语气确定词库是一项至关重要的资源。它对于理解和分析文本中的情感、态度以及语义倾向具有极其重要的意义。在日常的微服务、RPC等技能实践中,也深感NLP技术对于提升系…...

    2024/4/27 16:42:56
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 企业计算机服务器中了locked勒索病毒怎么办,locked勒索病毒解密流程步骤

    网络技术的不断发展为企业的生产运营提供了极大便利,也让企业的生产效率大大提高,但网络是一把双刃剑,给给企业的数据安全问题带来严重威胁。近期,云天数据恢复中心接到浙江某商贸公司的求助,企业计算机服务器遭到了lo…...

    2024/4/27 8:52:44
  4. 【Java】假如把集合体系看作购物中心

    购物中心入口:Java集合框架 “Java集合广场”的购物中心,这是一个集合了各种奇特商店的地方,每个商店都充满了不同的宝藏(数据结构)。 一楼:基础集合区 - Collection接口 一楼是基础集合区,这…...

    2024/4/24 3:27:38
  5. 自我介绍的HTML 页面(入门)

    一.前情提要 1.主要是代码示例&#xff0c;具体内容需自己填充 2.代码后是详解 二.代码实例和解析 代码 <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8"> <title>自我介绍页面</title>…...

    2024/4/26 14:55:53
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/26 20:12:18
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/25 18:39:22
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/26 21:56:58
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/26 16:00:35
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/25 18:39:16
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/26 22:01:59
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/25 2:10:52
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; 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
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在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