Deep Learning Academy · レッスン

reshape、view、squeeze、unsqueeze

データをコピーせずに次元を変更します

レッスン 2/413 ステップ

「reshape、view、squeeze、unsqueeze」はCoddyKit上の無料Deep Learning Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDeep Learning Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Deep Learning Academyコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

Same Data, Different Shape

Often the numbers are right but the layout is wrong. Reshaping rearranges a tensor's dimensions without changing the values inside.

reshape Picks a New Layout

Call reshape with the dimensions you want. The total number of elements must stay the same.

x = torch.arange(6)
y = x.reshape(2, 3)
print(y.shape)  # torch.Size([2, 3])

Let -1 Infer a Dimension

Pass -1 for one dimension and PyTorch computes it for you from the total count. Handy when you only know the rest.

x = torch.arange(6)
y = x.reshape(-1, 2)
print(y.shape)  # torch.Size([3, 2])

view Shares the Same Memory

view reshapes without copying, so it is fast. It needs the data to be laid out contiguously in memory.

x = torch.arange(6)
y = x.view(3, 2)
print(y.shape)  # torch.Size([3, 2])

reshape Is the Safer Default

When in doubt, reach for reshape. It works even on non-contiguous tensors by copying only if it must.

Squeeze Removes Size-1 Dims

squeeze strips out any dimension of length 1. It cleans up shapes like (1, 5) down to a simple (5).

x = torch.zeros(1, 5)
y = x.squeeze()
print(y.shape)  # torch.Size([5])

Squeeze a Specific Dimension

Give squeeze an index to remove only that dimension. Safer when other size-1 dims should stay put.

x = torch.zeros(1, 5, 1)
y = x.squeeze(0)
print(y.shape)  # torch.Size([5, 1])

Unsqueeze Adds a Dimension

unsqueeze inserts a new size-1 dimension at the position you choose. It is the exact opposite of squeeze.

x = torch.tensor([1, 2, 3])
y = x.unsqueeze(0)
print(y.shape)  # torch.Size([1, 3])

Why You Add a Batch Dimension

Models expect a batch dimension up front. unsqueeze(0) turns one sample into a batch of one so the model accepts it.

sample = torch.randn(3)
batch = sample.unsqueeze(0)
print(batch.shape)  # torch.Size([1, 3])

Flatten Down to One Line

flatten collapses every dimension into a single long vector. It is common right before a final linear layer.

x = torch.zeros(2, 3)
y = x.flatten()
print(y.shape)  # torch.Size([6])

Element Count Never Changes

Every reshape trick keeps the same total number of values. If the counts don't match, PyTorch raises a shape error.

Quick Check

Let's see if you can predict the shape changes.

Recap: Reshape, View, Squeeze & Unsqueeze

You can now bend tensors into any layout: reshape for flexibility, view for speed, and squeeze or unsqueeze to drop and add dimensions. 🔧

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「reshape、view、squeeze、unsqueeze」レッスンは無料ですか?

はい。「reshape、view、squeeze、unsqueeze」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Deep Learning Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Deep Learning Academyコースには全4レッスンが含まれています。

「reshape、view、squeeze、unsqueeze」で何を学びますか?

データをコピーせずに次元を変更します ブラウザで直接実行するハンズオンコードでDeep Learning Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Deep Learning Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDeep Learning Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「reshape、view、squeeze、unsqueeze」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDeep Learning Academyレッスンでコードを書いて実行できますか?

はい。すべてのDeep Learning Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. shape、dtype、インデックス指定
  2. reshape、view、squeeze、unsqueeze
  3. ループを減らすブロードキャストのルール
  4. テンソルとNumPyの連携
← Deep Learning Academyに戻る