當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]生成式對抗網(wǎng)絡(luò)(GAN, Generative Adversarial Networks )是一種深度學(xué)習(xí)模型,是近年來復(fù)雜分布上無監(jiān)督學(xué)習(xí)最具前景的方法之一。模型通過框架中(至少)兩個模塊:生成模型

生成式對抗網(wǎng)絡(luò)(GAN, Generative Adversarial Networks )是一種深度學(xué)習(xí)模型,是近年來復(fù)雜分布上無監(jiān)督學(xué)習(xí)最具前景的方法之一。模型通過框架中(至少)兩個模塊:生成模型(Generative Model)和判別模型(Discriminative Model)的互相博弈學(xué)習(xí)產(chǎn)生相當(dāng)好的輸出。原始 GAN 理論中,并不要求 G 和 D 都是神經(jīng)網(wǎng)絡(luò),只需要是能擬合相應(yīng)生成和判別的函數(shù)即可。但實用中一般均使用深度神經(jīng)網(wǎng)絡(luò)作為 G 和 D 。一個優(yōu)秀的GAN應(yīng)用需要有良好的訓(xùn)練方法,否則可能由于神經(jīng)網(wǎng)絡(luò)模型的自由性而導(dǎo)致輸出不理想。

生成對抗網(wǎng)絡(luò)被廣泛應(yīng)用于廣告、游戲、娛樂、媒體、制藥等行業(yè),可以用來創(chuàng)造虛構(gòu)的人物、場景,模擬人臉老化,圖像風(fēng)格變換,以及產(chǎn)生化學(xué)分子式等等。下面兩張圖片,分別展示了圖片到圖片轉(zhuǎn)換的效果,以及基于語義布局合成景物的效果。

本文將引領(lǐng)讀者,從工程實踐角度出發(fā),借助 AWS 機(jī)器學(xué)習(xí)相關(guān)云計算服務(wù),基于 PyTorch 機(jī)器學(xué)習(xí)框架,構(gòu)建第一個生成對抗網(wǎng)絡(luò),開啟全新的、有趣的機(jī)器學(xué)習(xí)和人工智能體驗。

還等什么,讓我們馬上開始吧!

主要內(nèi)容 課題及方案概覽 模型的開發(fā)環(huán)境 生成對抗網(wǎng)絡(luò)模型 模型的訓(xùn)練和驗證 結(jié)論與總結(jié) 課題及方案概覽

下面顯示的兩組手寫體數(shù)字圖片,您是否能從中夠辨認(rèn)出由計算機(jī)生成的『手寫』字體是其中哪一組?

本文的課題是用機(jī)器學(xué)習(xí)方法『模仿手寫字體』,為了完成這個課題,您將親手體驗生成對抗網(wǎng)絡(luò)的設(shè)計和實現(xiàn)?!耗7率謱懽煮w』與人像生成的基本原理和工程流程基本是一致的,雖然它們的復(fù)雜性和精度要求有一定差距,但是通過解決『模仿手寫字體』問題,可以為生成對抗網(wǎng)絡(luò)的原理和工程實踐打下基礎(chǔ),進(jìn)而可以逐步嘗試和探索更加復(fù)雜先進(jìn)的網(wǎng)絡(luò)架構(gòu)和應(yīng)用場景。

《生成對抗網(wǎng)絡(luò)》(GAN)由 Ian Goodfellow 等人在 2014年提出,它是一種深度神經(jīng)網(wǎng)絡(luò)架構(gòu),由一個生成網(wǎng)絡(luò)和一個判別網(wǎng)絡(luò)組成。生成網(wǎng)絡(luò)產(chǎn)生『假』數(shù)據(jù),并試圖欺騙判別網(wǎng)絡(luò);判別網(wǎng)絡(luò)對生成數(shù)據(jù)進(jìn)行真?zhèn)舞b別,試圖正確識別所有『假』數(shù)據(jù)。在訓(xùn)練迭代的過程中,兩個網(wǎng)絡(luò)持續(xù)地進(jìn)化和對抗,直到達(dá)到平衡狀態(tài)(參考:納什均衡),判別網(wǎng)絡(luò)無法再識別『假』數(shù)據(jù),訓(xùn)練結(jié)束。

2016年,Alec Radford 等發(fā)表的論文 《深度卷積生成對抗網(wǎng)絡(luò)》(DCGAN)中,開創(chuàng)性地將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到生成對抗網(wǎng)絡(luò)的模型算法設(shè)計當(dāng)中,替代了全鏈接層,提高了圖片場景里訓(xùn)練的穩(wěn)定性。

Amazon SageMaker 是 AWS 完全托管的機(jī)器學(xué)習(xí)服務(wù),數(shù)據(jù)處理和機(jī)器學(xué)習(xí)訓(xùn)練工作可以通過 Amazon SageMaker 快速、輕松地完成,訓(xùn)練好的模型可以直接部署到全托管的生產(chǎn)環(huán)境中。Amazon SageMaker 提供了托管的 Jupyter Notebook 實例,通過 SageMaker SDK 與 AWS 的多種云服務(wù)集成,方便您訪問數(shù)據(jù)源,進(jìn)行探索和分析。SageMaker SDK 是一套開放源代碼的 Amazon SageMaker 的開發(fā)包,可以協(xié)助您很好的使用 Amazon SageMaker 提供的托管容器鏡像,以及 AWS 的其他云服務(wù),如計算和存儲資源。

如上圖所示,訓(xùn)練用數(shù)據(jù)將來自 Amazon S3 的存儲桶;訓(xùn)練用的框架和托管算法以容器鏡像的形式提供服務(wù),在訓(xùn)練時與代碼結(jié)合;模型代碼運(yùn)行在 Amazon SageMaker 托管的計算實例中,在訓(xùn)練時與數(shù)據(jù)結(jié)合;訓(xùn)練輸出物將進(jìn)入 Amazon S3 專門的存儲桶里。后面的講解中,我們會了解到如何通過 SageMaker SDK 使用這些資源。

我們將用到 Amazon SageMaker、Amazon S3 、Amazon EC2 等 AWS 服務(wù),會產(chǎn)生一定的云資源使用費(fèi)用。

模型的開發(fā)環(huán)境 創(chuàng)建Notebook實例

請打開 Amazon SageMaker 的儀表板(點(diǎn)擊打開 北京區(qū)域 | 寧夏區(qū)域 ),請點(diǎn)擊Notebook instances 按鈕進(jìn)入筆記本實例列表。

如果您是第一次使用Amazon SageMaker,您的 Notebook instances 列表將顯示為空列表,此時您需點(diǎn)擊 Create notebook instance 按鈕來創(chuàng)建全新 Jupyter Notebook 實例。

進(jìn)入 Create notebook instance 頁面后,請在 Notebook instance name 字段里輸入實例名字,本文將使用 MySageMakerInstance 作為實例名,您可以選用您認(rèn)為合適的名字。本文將使用默認(rèn)的實例類型,因此 Notebook instance type 選項將保持為 *ml.t2.medium*。如果您是第一次使用Amazon SageMaker,您需要創(chuàng)建一個 IAM role,以便筆記本實例能夠訪問 Amazon S3 服務(wù)。請在 IAM role 選項點(diǎn)擊為 Create a new role。Amazon SageMaker 將創(chuàng)建一個具有必要權(quán)限的角色,并將這個角色分配給正在創(chuàng)建的實例。另外,根據(jù)您的實際情況,您也可以選擇一個已經(jīng)存在的角色。

在 Create an IAM role 彈出窗口里,您可以選擇 *Any S3 bucket*,這樣筆記本實例將能夠訪問您賬戶里的所有桶。另外,根據(jù)您的需要,您還可以選擇 Specific S3 buckets并輸入桶名。點(diǎn)擊 Create role 按鈕,這個新角色將被創(chuàng)建。

此時,可以看到 Amazon SageMaker 為您創(chuàng)建了一個名字類似 *
AmazonSageMaker-ExecutionRole-**** 的角色。對于其他字段,您可以使用默認(rèn)值,請點(diǎn)擊 Create notebook instance 按鈕,創(chuàng)建實例。

回到 Notebook instances 頁面,您會看到 MySageMakerInstance 筆記本實例顯示為 Pending 狀態(tài),這個將持續(xù)2分鐘左右,直到轉(zhuǎn)為 InService 狀態(tài)。

編寫第一行代碼

點(diǎn)擊 Open JupyterLab 鏈接,在新的頁面里,您將看到熟悉的 Jupyter Notebook 加載界面。本文默認(rèn)以 JupyterLab 筆記本作為工程環(huán)境,根據(jù)您的需要,可以選擇使用傳統(tǒng)的 Jupyter 筆記本。

您將通過點(diǎn)擊 conda_pytorch_p36, 筆記本圖標(biāo)來創(chuàng)建一個叫做 Untitled.ipynb 的筆記本,您可以稍后更改它的名字。另外,您也可以通過 File > New > Notebook 菜單路徑,并選擇 conda_pytorch_p36 作為 Kernel 來創(chuàng)建這個筆記本。

在新建的 Untitled.ipynb 筆記本里,我們將輸入第一行指令如下,

import torch print(f"Hello PyTorch {torch.__version__}") 源代碼下載

請在筆記本中輸入如下指令,下載代碼到實例本地文件系統(tǒng)。

下載完成后,您可以通過 File browser 瀏覽源代碼結(jié)構(gòu)。

本文涉及到的代碼和筆記本均通過 Amazon SageMaker 托管的 Python 3.6、PyTorch 1.4 和 JupyterLab 驗證。本文涉及到的代碼和筆記本可以通過 這里獲取。

生成對抗網(wǎng)絡(luò)模型 算法原理

DCGAN模型的生成網(wǎng)絡(luò)包含10層,它使用跨步轉(zhuǎn)置卷積層來提高張量的分辨率,輸入形狀為 (batchsize, 100) ,輸出形狀為 (batchsize, 64, 64, 3)。換句話說,生成網(wǎng)絡(luò)接受噪聲向量,然后經(jīng)過不斷變換,直到生成最終的圖像。

判別網(wǎng)絡(luò)也包含10層,它接收 (64, 64, 3) 格式的圖片,使用2D卷積層進(jìn)行下采樣,最后傳遞給全鏈接層進(jìn)行分類,分類結(jié)果是 1 或 0,即真與假。

DCGAN 模型的訓(xùn)練過程大致可以分為三個子過程。

首先, Generator 網(wǎng)絡(luò)以一個隨機(jī)數(shù)作為輸入,生成一張『假』圖片;接下來,分別用『真』圖片和『假』圖片訓(xùn)練 Discriminator 網(wǎng)絡(luò),更新參數(shù);最后,更新 Generator 網(wǎng)絡(luò)參數(shù)。

代碼分析

項目目錄 byos-pytorch-gan 的文件結(jié)構(gòu)如下,

文件 model.py 中包含 3 個類,分別是 生成網(wǎng)絡(luò) Generator 和 判別網(wǎng)絡(luò) Discriminator。

class Generator(nn.Module): ... class Discriminator(nn.Module): ... class DCGAN(object): """ A wrapper class for Generator and Discriminator, 'train_step' method is for single batch training. """ ...

文件 train.py 用于 Generator 和 Discriminator 兩個神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,主要包含以下幾個方法,

def parse_args(): ... def get_datasets(dataset_name, ...): ... def train(dataloader, hps, ...): ... 模型的調(diào)試

開發(fā)和調(diào)試階段,可以從 Linux 命令行直接運(yùn)行 train.py 腳本。超參數(shù)、輸入數(shù)據(jù)通道、模型和其他訓(xùn)練產(chǎn)出物存放目錄都可以通過命令行參數(shù)指定。

python dcgan/train.py --dataset qmnist --model-dir '/home/myhome/byom-pytorch-gan/model' --output-dir '/home/myhome/byom-pytorch-gan/tmp' --data-dir '/home/myhome/byom-pytorch-gan/data' --hps '{"beta1":0.5,"dataset":"qmnist","epochs":15,"learning-rate":0.0002,"log-interval":64,"nc":1,"nz":100,"sample-interval":100}'

這樣的訓(xùn)練腳本參數(shù)設(shè)計,既提供了很好的調(diào)試方法,又是與 SageMaker Container 集成的規(guī)約和必要條件,很好的兼顧了模型開發(fā)的自由度和訓(xùn)練環(huán)境的可移植性。

模型的訓(xùn)練和驗證

請查找并打開名為 dcgan.ipynb 的筆記本文件,訓(xùn)練過程將由這個筆記本介紹并執(zhí)行,本節(jié)內(nèi)容代碼部分從略,請以筆記本代碼為準(zhǔn)。

互聯(lián)網(wǎng)環(huán)境里有很多公開的數(shù)據(jù)集,對于機(jī)器學(xué)習(xí)的工程和科研很有幫助,比如算法學(xué)習(xí)和效果評價。我們將使用 QMNIST 這個手寫字體數(shù)據(jù)集訓(xùn)練模型,最終生成逼真的『手寫』字體效果圖樣。

數(shù)據(jù)準(zhǔn)備

PyTorch 框架的 torchvision.datasets 包提供了QMNIST 數(shù)據(jù)集,您可以通過如下指令下載 QMNIST 數(shù)據(jù)集到本地備用。

from torchvision import datasets dataroot = './data' trainset = datasets.QMNIST(root=dataroot, train=True, download=True) testset = datasets.QMNIST(root=dataroot, train=False, download=True)

Amazon SageMaker 為您創(chuàng)建了一個默認(rèn)的 Amazon S3 桶,用來存取機(jī)器學(xué)習(xí)工作流程中可能需要的各種文件和數(shù)據(jù)。 我們可以通過 SageMaker SDK 中 sagemaker.session.Session 類的 default_bucket 方法獲得這個桶的名字。

from sagemaker.session import Session sess = Session() # S3 bucket for saving code and model artifacts. # Feel free to specify a different bucket here if you wish. bucket = sess.default_bucket()

SageMaker SDK 提供了操作 Amazon S3 服務(wù)的包和類,其中 S3Downloader 類用于訪問或下載 S3 里的對象,而 S3Uploader 則用于將本地文件上傳至 S3。您將已經(jīng)下載的數(shù)據(jù)上傳至 Amazon S3,供模型訓(xùn)練使用。模型訓(xùn)練過程不要從互聯(lián)網(wǎng)下載數(shù)據(jù),避免通過互聯(lián)網(wǎng)獲取訓(xùn)練數(shù)據(jù)的產(chǎn)生的網(wǎng)絡(luò)延遲,同時也規(guī)避了因直接訪問互聯(lián)網(wǎng)對模型訓(xùn)練可能產(chǎn)生的安全風(fēng)險。

from sagemaker.s3 import S3Uploader as s3up s3_data_location = s3up.upload(f"{dataroot}/QMNIST", f"s3://{bucket}/data/qmnist") 訓(xùn)練執(zhí)行

通過
sagemaker.getexecutionrole() 方法,當(dāng)前筆記本可以得到預(yù)先分配給筆記本實例的角色,這個角色將被用來獲取訓(xùn)練用的資源,比如下載訓(xùn)練用框架鏡像、分配 Amazon EC2 計算資源等等。

訓(xùn)練模型用的超參數(shù)可以在筆記本里定義,實現(xiàn)與算法代碼的分離,在創(chuàng)建訓(xùn)練任務(wù)時傳入超參數(shù),與訓(xùn)練任務(wù)動態(tài)結(jié)合。

hps = { "learning-rate": 0.0002, "epochs": 15, "dataset": "qmnist", "beta1": 0.5, "sample-interval": 200, "log-interval": 64 }

sagemaker.pytorch 包里的 PyTorch 類是基于 PyTorch 框架的模型擬合器,可以用來創(chuàng)建、執(zhí)行訓(xùn)練任務(wù),還可以對訓(xùn)練完的模型進(jìn)行部署。參數(shù)列表中, train_instance_type 用來指定CPU或者GPU實例類型,訓(xùn)練腳本和包括模型代碼所在的目錄通過 source_dir 指定,訓(xùn)練腳本文件名必須通過 entry_point 明確定義。這些參數(shù)將和其余參數(shù)一起被傳遞給訓(xùn)練任務(wù),他們決定了訓(xùn)練任務(wù)的運(yùn)行環(huán)境和模型訓(xùn)練時參數(shù)。

from sagemaker.pytorch import PyTorch estimator = PyTorch(role=role, entry_point='train.py', source_dir='dcgan', output_path=s3_model_artifacts_location, code_location=s3_custom_code_upload_location, train_instance_count=1, train_instance_type='ml.c5.xlarge', train_use_spot_instances=True, train_max_wait=86400, framework_version='1.4.0', py_version='py3', hyperparameters=hps)

請?zhí)貏e注意 train_use_spot_instances 參數(shù),True 值代表您希望優(yōu)先使用 SPOT 實例。由于機(jī)器學(xué)習(xí)訓(xùn)練工作通常需要大量計算資源長時間運(yùn)行,善用 SPOT 可以幫助您實現(xiàn)有效的成本控制,SPOT 實例價格可能是按需實例價格的 20% 到 60%,依據(jù)選擇實例類型、區(qū)域、時間不同實際價格有所不同。

您已經(jīng)創(chuàng)建了 PyTorch 對象,下面可以用它來擬合預(yù)先存在 Amazon S3 上的數(shù)據(jù)了。下面的指令將執(zhí)行訓(xùn)練任務(wù),訓(xùn)練數(shù)據(jù)將以名為 QMNIST 的輸入通道的方式導(dǎo)入訓(xùn)練環(huán)境。訓(xùn)練開始執(zhí)行過程中,Amazon S3 上的訓(xùn)練數(shù)據(jù)將被下載到模型訓(xùn)練環(huán)境的本地文件系統(tǒng),訓(xùn)練腳本 train.py 將從本地磁盤加載數(shù)據(jù)進(jìn)行訓(xùn)練。

# Start training estimator.fit({'QMNIST': s3_data_location}, wait=False)

根據(jù)您選擇的訓(xùn)練實例不同,訓(xùn)練過程中可能持續(xù)幾十分鐘到幾個小時不等。建議設(shè)置 wait 參數(shù)為 False ,這個選項將使筆記本與訓(xùn)練任務(wù)分離,在訓(xùn)練時間長、訓(xùn)練日志多的場景下,可以避免筆記本上下文因為網(wǎng)絡(luò)中斷或者會話超時而丟失。訓(xùn)練任務(wù)脫離筆記本后,輸出將暫時不可見,可以執(zhí)行如下代碼,筆記本將獲取并載入此前的訓(xùn)練回話,

%%time from sagemaker.estimator import Estimator # Attaching previous training session training_job_name = estimator.latest_training_job.name attached_estimator = Estimator.attach(training_job_name)

由于的模型設(shè)計考慮到了GPU對訓(xùn)練加速的能力,所以用GPU實例訓(xùn)練會比CPU實例快一些,例如,p3.2xlarge 實例大概需要15分鐘左右,而 c5.xlarge 實例則可能需要6小時以上。目前模型不支持分布、并行訓(xùn)練,所以多實例、多CPU/GPU并不會帶來更多的訓(xùn)練速度提升。

訓(xùn)練完成后,模型將被上傳到 Amazon S3 里,上傳位置由創(chuàng)建 PyTorch 對象時提供的 output_path 參數(shù)指定。

模型的驗證

您將從 Amazon S3 下載經(jīng)過訓(xùn)練的模型到筆記本所在實例的本地文件系統(tǒng),下面的代碼將載入模型,然后輸入一個隨機(jī)數(shù),獲得推理結(jié)果,以圖片形式展現(xiàn)出來。執(zhí)行如下指令加載訓(xùn)練好的模型,并通過這個模型產(chǎn)生一組『手寫』數(shù)字字體。

from helper import * import matplotlib.pyplot as plt import numpy as np import torch from dcgan.model import Generator device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") params = {'nz': nz, 'nc': nc, 'ngf': ngf} model = load_model(Generator, params, "./model/generator_state.pth", device=device) img = generate_fake_handwriting(model, batch_size=batch_size, nz=nz, device=device) plt.imshow(np.asarray(img))

結(jié)論與總結(jié)

近些年成長快速的 PyTorch 框架正在得到廣泛的認(rèn)可和應(yīng)用,越來越多的新模型采用 PyTorch 框架,也有模型被遷移到 PyTorch 上,或者基于 PyTorch 被完整再實現(xiàn)。生態(tài)環(huán)境持續(xù)豐富,應(yīng)用領(lǐng)域不斷拓展,PyTorch 已成為事實上的主流框架之一。Amazon SageMaker 與多種 AWS 服務(wù)緊密集成,比如,各種類型和尺寸的 Amazon EC2 計算實例、Amazon S3、Amazon ECR 等等,為機(jī)器學(xué)習(xí)工程實踐提供了端到端的、一致的體驗。Amazon SageMaker 持續(xù)支持主流機(jī)器學(xué)習(xí)框架,PyTorch 是這其中之一。用 PyTorch 開發(fā)的機(jī)器學(xué)習(xí)算法和模型,可以輕松移植到 Amazon SageMaker 的工程和服務(wù)環(huán)境里,進(jìn)而利用 Amazon SageMaker 全托管的 Jupyter Notebook、訓(xùn)練容器鏡像、服務(wù)容器鏡像、訓(xùn)練任務(wù)管理、部署環(huán)境托管等功能,簡化機(jī)器學(xué)習(xí)工程復(fù)雜度,提高生產(chǎn)效率,降低運(yùn)維成本。

DCGAN 是生成對抗網(wǎng)絡(luò)領(lǐng)域中具里程碑意義的一個,是現(xiàn)今很多復(fù)雜生成對抗網(wǎng)絡(luò)的基石。文首提到的 StyleGAN,用文本合成圖像的 StackGAN,從草圖生成圖像的Pix2pix,以及互聯(lián)網(wǎng)上爭議不斷的 DeepFakes 等等,都有DCGAN的影子。相信通過本文的介紹和工程實踐,對您了解生成對抗網(wǎng)絡(luò)的原理和工程方法會有所幫助。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉